org.apache.openjpa.persistence.meta
public class SourceAnnotationHandler extends java.lang.Object implements MetadataProcessor<javax.lang.model.element.TypeElement,javax.lang.model.element.Element>
Modifier and Type | Field and Description |
---|---|
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.AnnotatedFilter |
annotatedFilter |
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.AccessFilter |
fieldAccessFilter |
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.KindFilter |
fieldFilter |
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.GetterFilter |
getterFilter |
protected static java.util.List<java.lang.Class<? extends java.lang.annotation.Annotation>> |
mappingAnnos |
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.KindFilter |
methodFilter |
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.TransientFilter |
nonTransientFilter |
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.AccessFilter |
propertyAccessFilter
Set of Inclusion Filters based on member type, access type or transient
annotations.
|
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.SetterFilter |
setterFilter |
Constructor and Description |
---|
SourceAnnotationHandler(javax.annotation.processing.ProcessingEnvironment processingEnv,
CompileTimeLogger logger)
Construct with JDK6 annotation processing environment.
|
Modifier and Type | Method and Description |
---|---|
javax.lang.model.type.TypeMirror |
box(javax.lang.model.type.TypeMirror t) |
int |
determineMemberAccess(javax.lang.model.element.Element m)
Determine the access type of the given member.
|
int |
determineTypeAccess(javax.lang.model.element.TypeElement type)
Determine the access type of the given type.
|
static boolean |
equalsByValue(java.lang.Enum<?> e,
java.lang.Object v)
Affirms if the given enum equals the given value.
|
java.lang.String |
extractFieldName(javax.lang.model.element.ExecutableElement method) |
static java.lang.Object |
getAnnotationValue(javax.lang.model.element.Element decl,
java.lang.Class<? extends java.lang.annotation.Annotation> anno)
Gets the value of the given annotation, if present, in the given
declaration.
|
static java.lang.Object |
getAnnotationValue(javax.lang.model.element.Element e,
java.lang.Class<? extends java.lang.annotation.Annotation> anno,
java.lang.String attr)
Gets the value of the given attribute of the given annotation, if
present, in the given declaration.
|
java.util.Set<javax.lang.model.element.Element> |
getPersistentMembers(javax.lang.model.element.TypeElement type)
Gets the list of persistent fields and/or methods for the given type.
|
javax.lang.model.element.TypeElement |
getPersistentSupertype(javax.lang.model.element.TypeElement cls) |
static boolean |
isAnnotated(javax.lang.model.element.Element e)
Affirms if the given element is annotated with any
javax.persistence.* or org.apache.openjpa.*
annotation. |
static boolean |
isAnnotatedWith(javax.lang.model.element.Element e,
java.lang.Class<? extends java.lang.annotation.Annotation> anno)
Affirms if the given declaration has the given annotation.
|
static boolean |
isAnnotatedWith(javax.lang.model.element.Element e,
java.util.Set<java.lang.String> annos)
Affirms if the given element is annotated with any of the given
annotations.
|
static boolean |
isBoolean(javax.lang.model.type.TypeMirror type)
Affirms if the given mirror represents a primitive or non-primitive
boolean.
|
static boolean |
isBooleanGetter(javax.lang.model.element.ExecutableElement method)
Affirms if the given method matches the following signature
public boolean isXyz()
public Boolean isXyz() |
static boolean |
isGetter(javax.lang.model.element.ExecutableElement method) |
static boolean |
isMethod(javax.lang.model.element.Element e)
Affirms if the given element represents a method.
|
boolean |
isMixedAccess(javax.lang.model.element.TypeElement t)
Affirms if the members of given type are using both field and property
based access.
|
static boolean |
isNormalGetter(javax.lang.model.element.ExecutableElement method)
Affirms if the given method matches the following signature
public T getXXX()
where T is any non-void type. |
static boolean |
isRootObject(javax.lang.model.type.TypeMirror type)
Affirms if the given mirror represents root java.lang.Object.
|
static boolean |
isSetter(javax.lang.model.element.ExecutableElement method)
Affirms if the given method matches the following signature
public void setXXX(T t) |
static boolean |
isVoid(javax.lang.model.type.TypeMirror type)
Affirms if the given mirror represents a void.
|
static boolean |
startsWith(java.lang.String full,
java.lang.String head)
Affirms if the given full string starts with the given head.
|
static java.lang.String |
toString(java.util.Collection<? extends javax.lang.model.element.Element> elements) |
java.util.List<java.lang.Exception> |
validateAccess(javax.lang.model.element.TypeElement t)
Gets the violations, if any.
|
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.AccessFilter propertyAccessFilter
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.AccessFilter fieldAccessFilter
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.KindFilter fieldFilter
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.KindFilter methodFilter
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.TransientFilter nonTransientFilter
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.AnnotatedFilter annotatedFilter
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.GetterFilter getterFilter
protected org.apache.openjpa.persistence.meta.SourceAnnotationHandler.SetterFilter setterFilter
protected static java.util.List<java.lang.Class<? extends java.lang.annotation.Annotation>> mappingAnnos
public SourceAnnotationHandler(javax.annotation.processing.ProcessingEnvironment processingEnv, CompileTimeLogger logger)
public int determineTypeAccess(javax.lang.model.element.TypeElement type)
MetadataProcessor
determineTypeAccess
in interface MetadataProcessor<javax.lang.model.element.TypeElement,javax.lang.model.element.Element>
public int determineMemberAccess(javax.lang.model.element.Element m)
MetadataProcessor
determineMemberAccess
in interface MetadataProcessor<javax.lang.model.element.TypeElement,javax.lang.model.element.Element>
public java.util.List<java.lang.Exception> validateAccess(javax.lang.model.element.TypeElement t)
MetadataProcessor
validateAccess
in interface MetadataProcessor<javax.lang.model.element.TypeElement,javax.lang.model.element.Element>
public boolean isMixedAccess(javax.lang.model.element.TypeElement t)
MetadataProcessor
isMixedAccess
in interface MetadataProcessor<javax.lang.model.element.TypeElement,javax.lang.model.element.Element>
public java.util.Set<javax.lang.model.element.Element> getPersistentMembers(javax.lang.model.element.TypeElement type)
getPersistentMembers
in interface MetadataProcessor<javax.lang.model.element.TypeElement,javax.lang.model.element.Element>
public static java.lang.Object getAnnotationValue(javax.lang.model.element.Element decl, java.lang.Class<? extends java.lang.annotation.Annotation> anno)
public static java.lang.Object getAnnotationValue(javax.lang.model.element.Element e, java.lang.Class<? extends java.lang.annotation.Annotation> anno, java.lang.String attr)
public static java.lang.String toString(java.util.Collection<? extends javax.lang.model.element.Element> elements)
public java.lang.String extractFieldName(javax.lang.model.element.ExecutableElement method)
public static boolean isAnnotated(javax.lang.model.element.Element e)
javax.persistence.*
or org.apache.openjpa.*
annotation.public static boolean isAnnotatedWith(javax.lang.model.element.Element e, java.lang.Class<? extends java.lang.annotation.Annotation> anno)
public static boolean isAnnotatedWith(javax.lang.model.element.Element e, java.util.Set<java.lang.String> annos)
annos
- null checks for any annotation that starts with
'javax.persistence.' or 'openjpa.*'.public javax.lang.model.type.TypeMirror box(javax.lang.model.type.TypeMirror t)
public javax.lang.model.element.TypeElement getPersistentSupertype(javax.lang.model.element.TypeElement cls)
getPersistentSupertype
in interface MetadataProcessor<javax.lang.model.element.TypeElement,javax.lang.model.element.Element>
public static boolean isBoolean(javax.lang.model.type.TypeMirror type)
public static boolean isVoid(javax.lang.model.type.TypeMirror type)
public static boolean isMethod(javax.lang.model.element.Element e)
public static boolean isNormalGetter(javax.lang.model.element.ExecutableElement method)
public T getXXX()
where T is any non-void type.public static boolean isBooleanGetter(javax.lang.model.element.ExecutableElement method)
public boolean isXyz()
public Boolean isXyz()
public static boolean isGetter(javax.lang.model.element.ExecutableElement method)
public static boolean isSetter(javax.lang.model.element.ExecutableElement method)
public void setXXX(T t)
public static boolean isRootObject(javax.lang.model.type.TypeMirror type)
public static boolean startsWith(java.lang.String full, java.lang.String head)
public static boolean equalsByValue(java.lang.Enum<?> e, java.lang.Object v)