1 package net.trajano.twiff.internal;
2
3 import static net.trajano.twiff.Twiff.CONTAINER_BUILDER_KEY;
4 import static net.trajano.twiff.Twiff.PACKAGE_CONTEXT_KEY;
5 import static net.trajano.twiff.Twiff.TOKEN_FIELD_NAME;
6 import static net.trajano.twiff.internal.TwiffInternal.APP_CONTAINER_KEY;
7 import static net.trajano.twiff.internal.TwiffInternal.SESSION_FACTORY_KEY;
8 import javax.servlet.ServletContext;
9 import net.trajano.twiff.adapter.ServletContextAdapter;
10 import net.trajano.twiff.container.ContainerBuilder;
11 import net.trajano.twiff.internal.util.InitParamUtil;
12 import org.hibernate.SessionFactory;
13 import org.picocontainer.MutablePicoContainer;
14 import org.picocontainer.PicoContainer;
15
16 /***
17 * This provides access to the servlet context data. Adapters like this are
18 * meant to remove the implicit casting performed by those that use it.
19 *
20 * @author Archimedes Trajano
21 */
22 public class ServletContextAdapterImpl implements ServletContextAdapter {
23 /***
24 * The application level container.
25 */
26 private final MutablePicoContainer container;
27
28 /***
29 * The container builder.
30 */
31 private final ContainerBuilder containerBuilder;
32
33 /***
34 * Hibernate session factory.
35 */
36 private final SessionFactory sessionFactory;
37
38 /***
39 * Creates the adapter.
40 *
41 * @param servletContext
42 * the context to adapt
43 */
44 public ServletContextAdapterImpl(final ServletContext servletContext) {
45 this.containerBuilder = (ContainerBuilder) servletContext.getAttribute(CONTAINER_BUILDER_KEY);
46 this.container = (MutablePicoContainer) servletContext.getAttribute(APP_CONTAINER_KEY);
47 this.sessionFactory = (SessionFactory) servletContext.getAttribute(SESSION_FACTORY_KEY);
48 this.tokenFieldName = InitParamUtil.getInitParam(servletContext, TOKEN_FIELD_NAME);
49 this.packageContext = InitParamUtil.getInitParam(servletContext, PACKAGE_CONTEXT_KEY);
50 }
51
52 /***
53 * Token field name.
54 */
55 private final String tokenFieldName;
56
57 /***
58 * Package context.
59 */
60 private final String packageContext/package-summary.html">ong> final String packageContext;
61
62 /***
63 * Returns the {@link PicoContainer} stored in the servlet context. The
64 * container is stored in the attribute
65 * {@link net.trajano.twiff.internal.TwiffInternal#APP_CONTAINER_KEY}.
66 *
67 * @return the application level container.
68 */
69 public final MutablePicoContainer getContainer() {
70 return container;
71 }
72
73 /***
74 * Returns the {@link ContainerBuilder} stored in the servlet context. The
75 * builder is stored in the attribute
76 * {@link net.trajano.twiff.Twiff#CONTAINER_BUILDER_KEY}.
77 *
78 * @return the container builder.
79 */
80 public final ContainerBuilder getContainerBuilder() {
81 return containerBuilder;
82 }
83
84 /***
85 * This returns the Hibernate session factory. This is stored in the
86 * attribute
87 * {@link net.trajano.twiff.internal.TwiffInternal#SESSION_FACTORY_KEY}.
88 *
89 * @return the session factory.
90 */
91 public final SessionFactory getSessionFactory() {
92 return sessionFactory;
93 }
94 }