001    package railo.runtime.type.scope;
002    
003    import java.util.Set;
004    
005    import railo.runtime.exp.PageException;
006    import railo.runtime.type.Array;
007    import railo.runtime.type.Collection;
008    
009    /**
010     * interface for Argument scope
011     */
012    public interface Argument extends Scope,Array,BindScope {
013    
014        /** 
015         * sets if scope is binded to a other variable for using outside of a udf 
016         * @param bind 
017         */
018        public abstract void setBind(boolean bind);
019    
020        /** 
021         * @return returns if scope is binded to a other variable for using outside of a udf 
022         */
023        public abstract boolean isBind();
024    
025        /**
026         * insert a key in argument scope at defined position
027         * @param index
028         * @param key
029         * @param value
030         * @return boolean
031         * @throws PageException
032         */
033        public abstract boolean insert(int index, String key, Object value)
034                throws PageException;
035        
036    
037            
038            public Object setArgument(Object obj) throws PageException;
039    
040            public static final Object NULL = null;
041            
042            public Object getFunctionArgument(String key, Object defaultValue);
043    
044            public Object getFunctionArgument(Collection.Key key, Object defaultValue);
045            
046            public void setFunctionArgumentNames(Set functionArgumentNames);
047    
048            public boolean containsFunctionArgumentKey(Key key);
049    
050    }