public class SourceAnnotationHandler extends java.lang.Object implements MetadataProcessor<javax.lang.model.element.TypeElement,javax.lang.model.element.Element>
Modifier and Type | Class and Description |
---|---|
(package private) static class |
SourceAnnotationHandler.AccessFilter
Selects elements which is annotated with @Access annotation and that
annotation has the given AccessType value.
|
(package private) static class |
SourceAnnotationHandler.AnnotatedFilter
Selects all annotated element.
|
(package private) static class |
SourceAnnotationHandler.GetterFilter
Selects getter method.
|
(package private) static class |
SourceAnnotationHandler.KindFilter
Selects elements of given kind.
|
(package private) static class |
SourceAnnotationHandler.SetterFilter
Selects setter method.
|
(package private) static class |
SourceAnnotationHandler.TransientFilter
Selects all non-transient element.
|
Modifier and Type | Field and Description |
---|---|
protected SourceAnnotationHandler.AnnotatedFilter |
annotatedFilter |
protected SourceAnnotationHandler.AccessFilter |
fieldAccessFilter |
protected SourceAnnotationHandler.KindFilter |
fieldFilter |
protected SourceAnnotationHandler.GetterFilter |
getterFilter |
protected static java.util.List<java.lang.Class<? extends java.lang.annotation.Annotation>> |
mappingAnnos |
protected SourceAnnotationHandler.KindFilter |
methodFilter |
protected SourceAnnotationHandler.TransientFilter |
nonTransientFilter |
protected SourceAnnotationHandler.AccessFilter |
propertyAccessFilter
Set of Inclusion Filters based on member type, access type or transient
annotations.
|
protected 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) |
(package private) <T extends javax.lang.model.element.Element> |
filter(java.util.Collection<T> coll,
org.apache.openjpa.persistence.meta.SourceAnnotationHandler.InclusiveFilter... filters)
Filter the given collection with the conjunction of filters.
|
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.
|
(package private) javax.lang.model.type.TypeMirror |
getDeclaredType(javax.lang.model.element.Element e)
Gets the declared type of the given member.
|
(package private) java.lang.String |
getDeclaredTypeName(javax.lang.model.type.TypeMirror mirror) |
(package private) java.lang.String |
getDeclaredTypeName(javax.lang.model.type.TypeMirror mirror,
boolean box) |
(package private) java.lang.String |
getDeclaredTypeName(javax.lang.model.type.TypeMirror mirror,
boolean box,
boolean persistentCollection)
Get the element name of the class the given mirror represents.
|
(package private) javax.persistence.AccessType |
getExplicitAccessType(javax.lang.model.element.TypeElement type)
Get access type of the given class, if specified explicitly.
|
(package private) java.lang.String |
getPersistentMemberName(javax.lang.model.element.Element e) |
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) |
(package private) javax.lang.model.type.TypeMirror |
getTargetEntityType(javax.lang.model.element.Element e) |
(package private) javax.lang.model.type.TypeMirror |
getTypeParameter(javax.lang.model.element.Element e,
javax.lang.model.type.TypeMirror mirror,
int index,
boolean checkTarget)
Gets the parameter type argument at the given index of the given type.
|
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. |
(package private) boolean |
isAnnotatedAsEntity(javax.lang.model.element.Element e)
Affirms if the given declaration has the given 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.
|
(package private) java.util.Set<javax.lang.model.element.Element> |
merge(java.util.Set<? extends javax.lang.model.element.Element> a,
java.util.Set<? extends javax.lang.model.element.Element> b) |
static boolean |
startsWith(java.lang.String full,
java.lang.String head)
Affirms if the given full string starts with the given head.
|
(package private) java.lang.String |
toDetails(javax.lang.model.element.Element e) |
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 SourceAnnotationHandler.AccessFilter propertyAccessFilter
protected SourceAnnotationHandler.AccessFilter fieldAccessFilter
protected SourceAnnotationHandler.KindFilter fieldFilter
protected SourceAnnotationHandler.KindFilter methodFilter
protected SourceAnnotationHandler.TransientFilter nonTransientFilter
protected SourceAnnotationHandler.AnnotatedFilter annotatedFilter
protected SourceAnnotationHandler.GetterFilter getterFilter
protected 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>
java.util.Set<javax.lang.model.element.Element> merge(java.util.Set<? extends javax.lang.model.element.Element> a, java.util.Set<? extends javax.lang.model.element.Element> b)
<T extends javax.lang.model.element.Element> java.util.Set<T> filter(java.util.Collection<T> coll, org.apache.openjpa.persistence.meta.SourceAnnotationHandler.InclusiveFilter... filters)
javax.persistence.AccessType getExplicitAccessType(javax.lang.model.element.TypeElement type)
type
- 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)
java.lang.String toDetails(javax.lang.model.element.Element e)
java.lang.String getPersistentMemberName(javax.lang.model.element.Element e)
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.boolean isAnnotatedAsEntity(javax.lang.model.element.Element e)
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.*'.javax.lang.model.type.TypeMirror getTargetEntityType(javax.lang.model.element.Element e)
java.lang.String getDeclaredTypeName(javax.lang.model.type.TypeMirror mirror)
java.lang.String getDeclaredTypeName(javax.lang.model.type.TypeMirror mirror, boolean box)
java.lang.String getDeclaredTypeName(javax.lang.model.type.TypeMirror mirror, boolean box, boolean persistentCollection)
java.util.Set<java.lang.String>
this method will
return java.util.Set
.javax.lang.model.type.TypeMirror getDeclaredType(javax.lang.model.element.Element e)
e
- a field or method.if
- given member is neither a field nor a method.public javax.lang.model.type.TypeMirror box(javax.lang.model.type.TypeMirror t)
javax.lang.model.type.TypeMirror getTypeParameter(javax.lang.model.element.Element e, javax.lang.model.type.TypeMirror mirror, int index, boolean checkTarget)
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)
Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.