001    package railo.runtime.type;
002    
003    import railo.runtime.PageContext;
004    
005    /**
006     * abstract class for all cold fusion scopes 
007     */
008    public interface Scope extends Struct {
009            
010            /**
011             * Scope Undefined
012             */
013            public static final int SCOPE_UNDEFINED=0;
014            /**
015             * Scope Variables
016             */
017            public static final int SCOPE_VARIABLES=1;
018            /**
019             * Scope Request
020             */
021            public static final int SCOPE_REQUEST=2;
022            /**
023             * Scope URL
024             */
025            public static final int SCOPE_URL=3;
026            /**
027             * Scope Form
028             */
029            public static final int SCOPE_FORM=4;
030            /**
031             * Scope Client
032             */
033            public static final int SCOPE_CLIENT=5;
034            /**
035             * Scope Cookie
036             */
037            public static final int SCOPE_COOKIE=6;
038            /**
039             * Scope Session
040             */
041            public static final int SCOPE_SESSION=7;
042            /**
043             * Scope Application
044             */
045            public static final int SCOPE_APPLICATION=8;
046            /**
047             * Scope Arguments
048             */
049            public static final int SCOPE_ARGUMENTS=9;
050            /**
051             * Scope CGI
052             */
053            public static final int SCOPE_CGI=10;   
054            /**
055             * Scope Server
056             */
057            public static final int SCOPE_SERVER=11;
058        
059        /**
060         * Scope Local
061         */
062        public static final int SCOPE_LOCAL=12;
063        
064        /**
065         * Scope Caller
066         */
067        public static final int SCOPE_CALLER=13;
068    
069        public static final int SCOPE_CLUSTER=14;
070        
071    
072        // FUTURE public static final int SCOPE_VAR=15;
073        
074        
075        public static final int SCOPE_COUNT=15;
076        
077        
078        
079        
080            /**
081             * return if the scope is Initialiesd
082             * @return scope is init
083             */
084            public boolean isInitalized(); 
085            
086            /**
087             * Initalize Scope
088             * @param pc Page Context
089             */
090            public void initialize(PageContext pc);
091            
092            /**
093             * release scope for reuse
094             */
095            public void release();// FUTURE add PageContext
096            
097        /** 
098         * @return return the scope type (SCOPE_SERVER, SCOPE_SESSION usw.) 
099         */ 
100        public int getType(); 
101        
102        /** 
103         * @return return the scope type as a String (server,session usw.) 
104         */ 
105        public String getTypeAsString(); 
106    
107    }