package org.tldgen.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* A JSP <a href="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_1.xsd">variable</a>.
* Variables are explained <a href="http://download.oracle.com/docs/cd/B25221_05/web.1013/b14430/taglibs.htm#sthref456">here</a>.
* @author icoloma
*
*/
@Target({ ElementType.FIELD })
@Documented
@Retention(RetentionPolicy.SOURCE)
public @interface Variable {
/**
* The variable name as a constant. Required if this annotation
* is used inside the variables attribute of the {@link Tag} annotation
*/
String nameGiven() default "";
/** description of the variable */
String description() default "";
/** Whether the variable is declared or not. True is the default. */
boolean declare() default true;
/** The scope of the scripting variable. NESTED is default. */
VariableScope scope() default VariableScope.NESTED;
/** Class of the variable, default String */
Class<?> variableClass() default String.class;
}