Annotation Type GenerateRefinement


  • @Repeatable(GenerateRefinements.class)
    @Retention(SOURCE)
    @Target(TYPE)
    public @interface GenerateRefinement
    Annotation to indicate that a subclass with the specified configuration should be generated. Currently only supports narrowing type parameters/constructor parameters/interfaces. Delegates to super constructors.
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      String name
      The name of the to-be-generated refinement.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      String[] generics
      The type variables the refinement should have.
      Interface[] interfaces
      An array of additional interfaces the refinement should implement.
      Map[] parameterMapping
      A mapping of specializations of parameter types for the refinement's constructor parameters.
      Generic[] parentGenerics
      The values for the generics of the parent (i.e. the class annotated by this annotation) class.
    • Element Detail

      • name

        String name
        The name of the to-be-generated refinement.
        Returns:
        the name of the to-be-generated refinement
      • generics

        String[] generics
        The type variables the refinement should have.
        Returns:
        the type variables the refinement should have
        Default:
        {}
      • parentGenerics

        Generic[] parentGenerics
        The values for the generics of the parent (i.e. the class annotated by this annotation) class.
        Returns:
        the values for the generics of the parent class
        Default:
        {}
      • parameterMapping

        Map[] parameterMapping
        A mapping of specializations of parameter types for the refinement's constructor parameters.
        Returns:
        a mapping of specializations of parameter types for the refinement's constructor parameters
        Default:
        {}
      • interfaces

        Interface[] interfaces
        An array of additional interfaces the refinement should implement.
        Returns:
        an array of additional interfaces the refinement should implement
        Default:
        {}