001    package railo.runtime.listener;
002    
003    import java.io.Serializable;
004    
005    import railo.commons.io.res.Resource;
006    import railo.runtime.Mapping;
007    import railo.runtime.PageContext;
008    import railo.runtime.exp.PageException;
009    import railo.runtime.net.s3.Properties;
010    import railo.runtime.orm.ORMConfiguration;
011    import railo.runtime.rest.RestSettings;
012    import railo.runtime.type.dt.TimeSpan;
013    
014    /**
015     * DTO Interface for Application Context data (defined by tag application)
016     */
017    public interface ApplicationContext extends Serializable {
018    
019        public static final int SCRIPT_PROTECT_NONE = 0;
020        public static final int SCRIPT_PROTECT_FORM = 1;
021        public static final int SCRIPT_PROTECT_URL = 2;
022        public static final int SCRIPT_PROTECT_CGI = 4;
023        public static final int SCRIPT_PROTECT_COOKIE = 8;
024        public static final int SCRIPT_PROTECT_ALL = SCRIPT_PROTECT_CGI+SCRIPT_PROTECT_COOKIE+SCRIPT_PROTECT_FORM+SCRIPT_PROTECT_URL;
025    
026            /**
027         * @return Returns the applicationTimeout.
028         */
029        public abstract TimeSpan getApplicationTimeout();
030    
031        /**
032         * @return Returns the loginStorage.
033         */
034        public abstract int getLoginStorage();
035    
036        /**
037         * @return Returns the name.
038         */
039        public abstract String getName();
040    
041        /**
042         * @return Returns the sessionTimeout.
043         */
044        public abstract TimeSpan getSessionTimeout();
045    
046        /**
047         * @return Returns the setClientCookies.
048         */
049        public abstract boolean isSetClientCookies();
050    
051        /**
052         * @return Returns the setClientManagement.
053         */
054        public abstract boolean isSetClientManagement();
055    
056        /**
057         * @return Returns the setDomainCookies.
058         */
059        public abstract boolean isSetDomainCookies();
060    
061        /**
062         * @return Returns the setSessionManagement.
063         */
064        public abstract boolean isSetSessionManagement();
065    
066        /**
067         * @return Returns the clientstorage.
068         */
069        public abstract String getClientstorage();
070    
071        /**
072         * @return if application context has a name
073         */
074        public abstract boolean hasName();
075        
076        /**
077         * @return return script protect setting
078         */
079        public int getScriptProtect();
080    
081        
082        public Mapping[] getMappings();
083        
084        public Mapping[] getCustomTagMappings();
085        
086    
087            public String getSecureJsonPrefix() ;
088    
089            public boolean getSecureJson();
090    
091            // FUTURE deprecated use instead getDefDataSource()
092            public String getDefaultDataSource();
093            
094            public boolean isORMEnabled();
095    
096            // FUTURE deprecated use instead getDefaultDataSource()
097            public String getORMDatasource();
098    
099            public ORMConfiguration getORMConfiguration();
100            
101            public Properties getS3();
102            
103            public int getLocalMode();
104            
105            public String getSessionstorage();
106    
107            public TimeSpan getClientTimeout();
108            
109            public short getSessionType();
110            
111            public boolean getSessionCluster();
112    
113            public boolean getClientCluster();
114    
115            public Mapping[] getComponentMappings();
116            
117            
118            
119            
120            
121            
122    
123            public void setApplicationTimeout(TimeSpan applicationTimeout);
124            public void setSessionTimeout(TimeSpan sessionTimeout);
125            public void setClientTimeout(TimeSpan clientTimeout);
126            public void setClientstorage(String clientstorage);
127            public void setSessionstorage(String sessionstorage);
128            public void setCustomTagMappings(Mapping[] customTagMappings);
129            public void setComponentMappings(Mapping[] componentMappings);
130            public void setMappings(Mapping[] mappings);
131            public void setLoginStorage(int loginstorage);
132            public void setDefaultDataSource(String datasource);
133            public void setScriptProtect(int scriptrotect);
134            public void setSecureJson(boolean secureJson);
135            public void setSecureJsonPrefix(String secureJsonPrefix);
136            public void setSetClientCookies(boolean setClientCookies);
137            public void setSetClientManagement(boolean setClientManagement);
138            public void setSetDomainCookies(boolean setDomainCookies);
139            public void setSetSessionManagement(boolean setSessionManagement);
140            public void setLocalMode(int localMode);
141            public void setSessionType(short sessionType);
142            public void setClientCluster(boolean clientCluster);
143            public void setSessionCluster(boolean sessionCluster);
144            public void setS3(Properties s3);
145            public void setORMEnabled(boolean ormenabled);
146            public void setORMConfiguration(ORMConfiguration ormConf);
147            public void setORMDatasource(String string);
148    
149            public String getSecurityApplicationToken();
150            public String getSecurityCookieDomain();
151            public int getSecurityIdleTimeout();
152            public void setSecuritySettings(String applicationtoken,String cookiedomain, int idletimeout);
153            
154            public void reinitORM(PageContext pc) throws PageException ;
155    
156            public Resource getSource(); 
157            
158    
159    
160            public boolean getTriggerComponentDataMember();
161            public void setTriggerComponentDataMember(boolean triggerComponentDataMember);
162    
163            /**
164             * return the default cache name for a certain type 
165             * @param type can be one of the following constants Config.CACHE_DEFAULT_OBJECT, Config.CACHE_DEFAULT_TEMPLATE, Config.CACHE_DEFAULT_QUERY, Config.CACHE_DEFAULT_RESOURCE, Config.CACHE_DEFAULT_FUNCTION
166             * @return name of the cache defined
167             */
168            public String getDefaultCacheName(int type);
169            
170            public void setDefaultCacheName(int type, String cacheName);
171    
172            /**
173             * merge the field with same name to array if true, otherwise to a comma separated string list
174             * @param scope scope type, one of the following: Scope.SCOPE_FORM or Scope.SCOPE_URL
175             * @return
176             */
177            public boolean getSameFieldAsArray(int scope);
178    
179            public RestSettings getRestSettings();
180            
181            public JavaSettings getJavaSettings();
182            
183            public Resource[] getRestCFCLocations();
184    }