package org.etk.reflect.api.annotation; import org.etk.reflect.api.ClassTypeInfo; /** * Define the AnnotationParameterType consist of INTEGER, STRING, BOOLEAN, CLASS_TYPE_INFO, DOUBLE, SHORT, LONG, ENUM, ANNOTATION. * @author thanh_vucong * * @param <T> */ public class AnnotationParameterType<T> { private final Class<T> javaType; private AnnotationParameterType(Class<T> javaType) { this.javaType = javaType; } public static final AnnotationParameterType<String> STRING = new AnnotationParameterType<String>(String.class); public static final AnnotationParameterType<Integer> INTEGER = new AnnotationParameterType<Integer>(Integer.class); public static final AnnotationParameterType<Long> LONG = new AnnotationParameterType<Long>(Long.class); public static final AnnotationParameterType<Boolean> BOOLEAN = new AnnotationParameterType<Boolean>(Boolean.class); public static final AnnotationParameterType<Float> FLOAT = new AnnotationParameterType<Float>(Float.class); public static final AnnotationParameterType<Byte> BYTE = new AnnotationParameterType<Byte>(Byte.class); public static final AnnotationParameterType<Short> SHORT = new AnnotationParameterType<Short>(Short.class); public static final AnnotationParameterType<Double> DOUBLE = new AnnotationParameterType<Double>(Double.class); public static final AnnotationParameterType<String> ENUM = new AnnotationParameterType<String>(String.class); public static final AnnotationParameterType<ClassTypeInfo> CLASS = new AnnotationParameterType<ClassTypeInfo>(ClassTypeInfo.class); public static final AnnotationParameterType<AnnotationInfo> ANNOTATION = new AnnotationParameterType<AnnotationInfo>(AnnotationInfo.class); }