001    package railo.runtime.interpreter.ref;
002    
003    import railo.runtime.exp.PageException;
004    
005    /**
006     * Define a Reference to a Object
007     */
008    public interface Ref {
009            
010        /**
011         * return the value for that the reference is for
012         * @return value to reference
013         * @throws PageException
014         */
015        public Object touchValue() throws PageException;
016    
017        /**
018         * return the value for that the reference is for
019         * @return value to reference
020         * @throws PageException
021         */
022        public Object getValue() throws PageException;
023    
024        /**
025         * return the value for that the reference is for
026         * @return value to reference
027         * @throws PageException
028         */
029        public Object getCollection() throws PageException;
030        
031            /**
032             * return the name name of a reference
033             * @return type as string
034             */
035            public String getTypeName();
036            
037    
038            public boolean eeq(Ref other) throws PageException;
039    }