001    package railo.runtime.ext.tag;
002    
003    import railo.runtime.type.Collection;
004    
005    public interface TagMetaDataAttr {
006    
007            /**
008             * A description of the attribute.
009             * @return the description of the attribute
010             */
011            public abstract String getDescription();
012    
013            /**
014             * The runtime type of the attribute's value 
015             * For example:String,Number,Boolean,Object,...
016             * @return the type of the attribute
017             */
018            public abstract String getType();
019    
020            /**
021             * The unique name of the attribute being declared
022             * @return the name of the attribute
023             */
024            public abstract Collection.Key getName();
025    
026            /**
027             * return the default value for this attribute or null if no default value is defined
028             * @return the default value of the attribute
029             */
030            public abstract String getDefaultVaue();
031    
032            /**
033             * Whether the attribute is required.
034             * @return is required
035             */
036            public abstract boolean isRequired();
037    
038            /**
039             * Whether the attribute's value can be dynamically calculated at runtime.
040             * @return is a runtime expression
041             */
042            public boolean isRuntimeExpressionValue();
043            
044    }