001    package railo.runtime.type;
002    
003    import java.io.Serializable;
004    
005    /**
006     * a function argument definition
007     */
008    public interface FunctionArgument extends Serializable {
009    
010        public static final int DEFAULT_TYPE_NULL = 0;
011        public static final int DEFAULT_TYPE_LITERAL = 1;
012        public static final int DEFAULT_TYPE_RUNTIME_EXPRESSION = 2;
013            
014        /**
015         * @return Returns the name of the argument.
016         */
017        public abstract Collection.Key getName();
018    
019        /**
020         * @return Returns if argument is required or not.
021         */
022        public abstract boolean isRequired();
023    
024        /**
025         * @return Returns the type of the argument.
026         */
027        public abstract short getType();
028    
029        /**
030         * @return Returns the type of the argument.
031         */
032        public abstract String getTypeAsString();
033    
034        /**
035         * @return Returns the Hint of the argument.
036         */
037        public abstract String getHint();
038     
039    
040        /**
041         * @return Returns the display name (Label) of the argument.
042         * @deprecated replaced with <code>getDisplayName();</code>
043         */
044        public abstract String getDspName();
045    
046            /**
047         * @return Returns the Display name of the argument.
048         */
049        public abstract String getDisplayName();
050        
051        /**
052         * @return the default type of the argument
053         */
054        public int getDefaultType();
055        
056    
057            /**
058             * @return the meta data defined 
059             */
060            public Struct getMetaData();
061    
062            public boolean isPassByReference();
063    }