|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.openjpa.persistence.meta.SourceAnnotationHandler
public class SourceAnnotationHandler
Extracts persistent metadata information by analyzing available annotation in *.java source files. Requires JDK6 Annotation Processing environment available.
Nested Class Summary | |
---|---|
(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. |
Field Summary | |
---|---|
protected SourceAnnotationHandler.AnnotatedFilter |
annotatedFilter
|
protected SourceAnnotationHandler.AccessFilter |
fieldAccessFilter
|
protected SourceAnnotationHandler.KindFilter |
fieldFilter
|
protected SourceAnnotationHandler.GetterFilter |
getterFilter
|
protected static List<Class<? extends 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 Summary | |
---|---|
SourceAnnotationHandler(ProcessingEnvironment processingEnv,
CompileTimeLogger logger)
Construct with JDK6 annotation processing environment. |
Method Summary | ||
---|---|---|
TypeMirror |
box(TypeMirror t)
|
|
int |
determineMemberAccess(Element m)
Determine the access type of the given member. |
|
int |
determineTypeAccess(TypeElement type)
Determine the access type of the given type. |
|
static boolean |
equalsByValue(Enum<?> e,
Object v)
Affirms if the given enum equals the given value. |
|
String |
extractFieldName(ExecutableElement method)
|
|
(package private)
|
filter(Collection<T> coll,
org.apache.openjpa.persistence.meta.SourceAnnotationHandler.InclusiveFilter... filters)
Filter the given collection with the conjunction of filters. |
|
static Object |
getAnnotationValue(Element decl,
Class<? extends Annotation> anno)
Gets the value of the given annotation, if present, in the given declaration. |
|
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. |
|
(package private) TypeMirror |
getDeclaredType(Element e)
Gets the declared type of the given member. |
|
(package private) String |
getDeclaredTypeName(TypeMirror mirror)
|
|
(package private) String |
getDeclaredTypeName(TypeMirror mirror,
boolean box)
|
|
(package private) String |
getDeclaredTypeName(TypeMirror mirror,
boolean box,
boolean persistentCollection)
Get the element name of the class the given mirror represents. |
|
(package private) AccessType |
getExplicitAccessType(TypeElement type)
Get access type of the given class, if specified explicitly. |
|
(package private) String |
getPersistentMemberName(Element e)
|
|
Set<Element> |
getPersistentMembers(TypeElement type)
Gets the list of persistent fields and/or methods for the given type. |
|
TypeElement |
getPersistentSupertype(TypeElement cls)
|
|
(package private) TypeMirror |
getTargetEntityType(Element e)
|
|
(package private) TypeMirror |
getTypeParameter(Element e,
TypeMirror mirror,
int index,
boolean checkTarget)
Gets the parameter type argument at the given index of the given type. |
|
static boolean |
isAnnotated(Element e)
Affirms if the given element is annotated with any javax.persistence.* or org.apache.openjpa.*
annotation. |
|
(package private) boolean |
isAnnotatedAsEntity(Element e)
Affirms if the given declaration has the given annotation. |
|
static boolean |
isAnnotatedWith(Element e,
Class<? extends Annotation> anno)
Affirms if the given declaration has the given annotation. |
|
static boolean |
isAnnotatedWith(Element e,
Set<String> annos)
Affirms if the given element is annotated with any of the given annotations. |
|
static boolean |
isBoolean(TypeMirror type)
Affirms if the given mirror represents a primitive or non-primitive boolean. |
|
static boolean |
isBooleanGetter(ExecutableElement method)
Affirms if the given method matches the following signature public boolean isXyz()
public Boolean isXyz() |
|
static boolean |
isGetter(ExecutableElement method)
|
|
static boolean |
isMethod(Element e)
Affirms if the given element represents a method. |
|
boolean |
isMixedAccess(TypeElement t)
Affirms if the members of given type are using both field and property based access. |
|
static boolean |
isNormalGetter(ExecutableElement method)
Affirms if the given method matches the following signature public T getXXX()
where T is any non-void type. |
|
static boolean |
isRootObject(TypeMirror type)
Affirms if the given mirror represents root java.lang.Object. |
|
static boolean |
isSetter(ExecutableElement method)
Affirms if the given method matches the following signature public void setXXX(T t) |
|
static boolean |
isVoid(TypeMirror type)
Affirms if the given mirror represents a void. |
|
(package private) Set<Element> |
merge(Set<? extends Element> a,
Set<? extends Element> b)
|
|
static boolean |
startsWith(String full,
String head)
Affirms if the given full string starts with the given head. |
|
(package private) String |
toDetails(Element e)
|
|
static String |
toString(Collection<? extends Element> elements)
|
|
List<Exception> |
validateAccess(TypeElement t)
Gets the violations, if any. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
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 List<Class<? extends Annotation>> mappingAnnos
Constructor Detail |
---|
public SourceAnnotationHandler(ProcessingEnvironment processingEnv, CompileTimeLogger logger)
Method Detail |
---|
public int determineTypeAccess(TypeElement type)
MetadataProcessor
determineTypeAccess
in interface MetadataProcessor<TypeElement,Element>
public int determineMemberAccess(Element m)
MetadataProcessor
determineMemberAccess
in interface MetadataProcessor<TypeElement,Element>
public List<Exception> validateAccess(TypeElement t)
MetadataProcessor
validateAccess
in interface MetadataProcessor<TypeElement,Element>
public boolean isMixedAccess(TypeElement t)
MetadataProcessor
isMixedAccess
in interface MetadataProcessor<TypeElement,Element>
public Set<Element> getPersistentMembers(TypeElement type)
getPersistentMembers
in interface MetadataProcessor<TypeElement,Element>
Set<Element> merge(Set<? extends Element> a, Set<? extends Element> b)
<T extends Element> Set<T> filter(Collection<T> coll, org.apache.openjpa.persistence.meta.SourceAnnotationHandler.InclusiveFilter... filters)
AccessType getExplicitAccessType(TypeElement type)
type
-
public static Object getAnnotationValue(Element decl, Class<? extends Annotation> anno)
public static Object getAnnotationValue(Element e, Class<? extends Annotation> anno, String attr)
public static String toString(Collection<? extends Element> elements)
String toDetails(Element e)
String getPersistentMemberName(Element e)
public String extractFieldName(ExecutableElement method)
public static boolean isAnnotated(Element e)
javax.persistence.*
or org.apache.openjpa.*
annotation.
boolean isAnnotatedAsEntity(Element e)
public static boolean isAnnotatedWith(Element e, Class<? extends Annotation> anno)
public static boolean isAnnotatedWith(Element e, Set<String> annos)
annos
- null checks for any annotation that starts with
'javax.persistence.' or 'openjpa.*'.TypeMirror getTargetEntityType(Element e)
String getDeclaredTypeName(TypeMirror mirror)
String getDeclaredTypeName(TypeMirror mirror, boolean box)
String getDeclaredTypeName(TypeMirror mirror, boolean box, boolean persistentCollection)
java.util.Set<java.lang.String>
this method will
return java.util.Set
.
TypeMirror getDeclaredType(Element e)
e
- a field or method.
if
- given member is neither a field nor a method.public TypeMirror box(TypeMirror t)
TypeMirror getTypeParameter(Element e, TypeMirror mirror, int index, boolean checkTarget)
public TypeElement getPersistentSupertype(TypeElement cls)
getPersistentSupertype
in interface MetadataProcessor<TypeElement,Element>
public static boolean isBoolean(TypeMirror type)
public static boolean isVoid(TypeMirror type)
public static boolean isMethod(Element e)
public static boolean isNormalGetter(ExecutableElement method)
public T getXXX()
where T is any non-void type.
public static boolean isBooleanGetter(ExecutableElement method)
public boolean isXyz()
public Boolean isXyz()
public static boolean isGetter(ExecutableElement method)
public static boolean isSetter(ExecutableElement method)
public void setXXX(T t)
public static boolean isRootObject(TypeMirror type)
public static boolean startsWith(String full, String head)
public static boolean equalsByValue(Enum<?> e, Object v)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |