Class SourceAnnotationHandler

java.lang.Object
org.apache.openjpa.persistence.meta.SourceAnnotationHandler
All Implemented Interfaces:
MetadataProcessor<TypeElement,Element>

public class SourceAnnotationHandler extends Object implements MetadataProcessor<TypeElement,Element>
Extracts persistent metadata information by analyzing available annotation in *.java source files. Requires JDK6 Annotation Processing environment available.
Since:
2.0.0
Author:
Pinaki Poddar
  • Field Details

    • propertyAccessFilter

      protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.AccessFilter propertyAccessFilter
      Set of Inclusion Filters based on member type, access type or transient annotations. Used to determine the subset of available field/method that are persistent.
    • fieldAccessFilter

      protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.AccessFilter fieldAccessFilter
    • fieldFilter

      protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.KindFilter fieldFilter
    • methodFilter

      protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.KindFilter methodFilter
    • nonTransientFilter

      protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.TransientFilter nonTransientFilter
    • annotatedFilter

      protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.AnnotatedFilter annotatedFilter
    • getterFilter

      protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.GetterFilter getterFilter
    • setterFilter

      protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.SetterFilter setterFilter
    • mappingAnnos

      protected static List<Class<? extends Annotation>> mappingAnnos
  • Constructor Details

  • Method Details

    • determineTypeAccess

      public int determineTypeAccess(TypeElement type)
      Description copied from interface: MetadataProcessor
      Determine the access type of the given type.
      Specified by:
      determineTypeAccess in interface MetadataProcessor<TypeElement,Element>
      Returns:
      an integer denoting the type of access. The integer value corresponds to ClassMetaData.getAccessType().
    • determineMemberAccess

      public int determineMemberAccess(Element m)
      Description copied from interface: MetadataProcessor
      Determine the access type of the given member.
      Specified by:
      determineMemberAccess in interface MetadataProcessor<TypeElement,Element>
      Returns:
      an integer denoting the type of access. The integer value corresponds to FieldMetaData.getAccessType().
    • validateAccess

      public List<Exception> validateAccess(TypeElement t)
      Description copied from interface: MetadataProcessor
      Gets the violations, if any.
      Specified by:
      validateAccess in interface MetadataProcessor<TypeElement,Element>
      Returns:
      null or empty list if no exceptions.
    • isMixedAccess

      public boolean isMixedAccess(TypeElement t)
      Description copied from interface: MetadataProcessor
      Affirms if the members of given type are using both field and property based access.
      Specified by:
      isMixedAccess in interface MetadataProcessor<TypeElement,Element>
    • getPersistentMembers

      public Set<Element> getPersistentMembers(TypeElement type)
      Gets the list of persistent fields and/or methods for the given type. Scans relevant @AccessType annotation and field/method as per JPA specification to determine the candidate set of field/methods.
      Specified by:
      getPersistentMembers in interface MetadataProcessor<TypeElement,Element>
    • getAnnotationValue

      public static Object getAnnotationValue(Element decl, Class<? extends Annotation> anno)
      Gets the value of the given annotation, if present, in the given declaration. Otherwise, null.
    • getAnnotationValue

      public static Object getAnnotationValue(Element e, Class<? extends Annotation> anno, String attr)
      Gets the value of the given attribute of the given annotation, if present, in the given declaration. Otherwise, null.
    • toString

      public static String toString(Collection<? extends Element> elements)
    • extractFieldName

      public String extractFieldName(ExecutableElement method)
    • isAnnotated

      public static boolean isAnnotated(Element e)
      Affirms if the given element is annotated with any jakarta.persistence.* or org.apache.openjpa.* annotation.
    • isAnnotatedWith

      public static boolean isAnnotatedWith(Element e, Class<? extends Annotation> anno)
      Affirms if the given declaration has the given annotation.
    • isAnnotatedWith

      public static boolean isAnnotatedWith(Element e, Set<String> annos)
      Affirms if the given element is annotated with any of the given annotations.
      Parameters:
      annos - null checks for any annotation that starts with 'jakarta.persistence.' or 'openjpa.*'.
    • box

      public TypeMirror box(TypeMirror t)
    • getPersistentSupertype

      public TypeElement getPersistentSupertype(TypeElement cls)
      Specified by:
      getPersistentSupertype in interface MetadataProcessor<TypeElement,Element>
    • isBoolean

      public static boolean isBoolean(TypeMirror type)
      Affirms if the given mirror represents a primitive or non-primitive boolean.
    • isVoid

      public static boolean isVoid(TypeMirror type)
      Affirms if the given mirror represents a void.
    • isMethod

      public static boolean isMethod(Element e)
      Affirms if the given element represents a method.
    • isNormalGetter

      public static boolean isNormalGetter(ExecutableElement method)
      Affirms if the given method matches the following signature public T getXXX() where T is any non-void type.
    • isBooleanGetter

      public static boolean isBooleanGetter(ExecutableElement method)
      Affirms if the given method matches the following signature public boolean isXyz() public Boolean isXyz()
    • isGetter

      public static boolean isGetter(ExecutableElement method)
    • isSetter

      public static boolean isSetter(ExecutableElement method)
      Affirms if the given method matches the following signature public void setXXX(T t)
    • isRootObject

      public static boolean isRootObject(TypeMirror type)
      Affirms if the given mirror represents root java.lang.Object.
    • startsWith

      public static boolean startsWith(String full, String head)
      Affirms if the given full string starts with the given head.
    • equalsByValue

      public static boolean equalsByValue(Enum<?> e, Object v)
      Affirms if the given enum equals the given value.