package com.cache2.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.cache2.domain.Identifiable;
/**
* Annotation that declares a type, field, or method parameter to be handled by
* cache2.
*
* @author matthew
*
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.FIELD, ElementType.PARAMETER,
ElementType.METHOD })
@Inherited
public @interface Cache2Element {
/**
* The class of the element to be handled by cache2. Only required to
* support lists and primitive integers.
*
* @return class
*/
Class<? extends Identifiable> value() default Identifiable.class;
}