Annotation Type Copy


  • @Retention(RUNTIME)
    @Inherited
    @Target(METHOD)
    public @interface Copy
    Allows copying values of meta-annotation properties into the properties of an annotation that composes it. For example, consider the @MyReplacement meta-annotation defined below as:
     
    
     @Replace(expression = "`", replacement = "")
     @Parsed
     public @interface MyReplacement {
    
         @Copy(to = Parsed.class)
         String field() default "";
    
         @Copy(to = Parsed.class, property = "index")
         int myIndex() default -1;
     }
     
     
    Values set on attributes field or myIndex in @MyReplacement will be assigned to the attributes field and index of the @Parsed annotation. This allows you to apply the @MyReplacement annotation to any given field of your class while configuring the field name and index to be set for the @Parsed annotation. This eliminates the need for adding explicit, additional annotations and their specific property values to each and every field. The following class can now make use of the @MyReplacement annotation to apply the the annotations @Replace and @Parsed, configuring the properties of the "inherited" @Parsed:
     
     public class MyBean {
    
         @MyReplacement
         public String id;
    
         @MyReplacementUpperCase(field = "client_name")
         public String name;
    
         @MyReplacementUpperCase(myIndex = 4)
         public String address;
     }
     
     
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      java.lang.Class to
      Target annotation class that is part of a meta-annotation.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      java.lang.String property
      Target property of the given annotation class that is part of a meta-annotation.
    • Element Detail

      • to

        java.lang.Class to
        Target annotation class that is part of a meta-annotation.
        Returns:
        the class whose properties will be set from a given attribute of a meta-annotation
      • property

        java.lang.String property
        Target property of the given annotation class that is part of a meta-annotation.
        Returns:
        the name of the property in the given annotation class that should receive the value of the meta-annotation property.
        Default:
        ""