Class AnnotationProxyFactory

java.lang.Object
org.ehcache.sizeof.annotations.AnnotationProxyFactory

public final class AnnotationProxyFactory extends Object
Allows you to transform the type of your custom annotation to a reference annotation type. It can come handy when you want to allow the consumers of your library not to depend on your API because of the annotations, still allowing them to use the original annotation methods.

Example :

//getting a custom annotation from a class my.Annotation customAnnotation = klazz.getAnnotation(my.Annotation.class); //if this annotation is "similar" (duck-typing, same methods) to the reference one, I can get a proxy to it, whose type is the reference annotation ehcache.Annotation annotation = AnnotationProxyFactory.getAnnotationProxy(customAnnotation, ehcache.Annotation.class);

//so my library can apply the behavior when the default annotation is used

  • Constructor Details

    • AnnotationProxyFactory

      private AnnotationProxyFactory()
  • Method Details

    • getAnnotationProxy

      public static <T extends Annotation> T getAnnotationProxy(Annotation customAnnotation, Class<T> referenceAnnotation)
      Returns a proxy on the customAnnotation, having the same type than the referenceAnnotation
      Parameters:
      customAnnotation - annotation proxied
      referenceAnnotation - type of the returned annotation
      Returns:
      proxied customAnnotation with the type of referenceAnnotation