Package org.jboss.logging.processor.util
Class ElementHelper
- java.lang.Object
-
- org.jboss.logging.processor.util.ElementHelper
-
public final class ElementHelper extends java.lang.ObjectAn utility class to work with element.- Author:
- Kevin Pollet - SERLI - (kevin.pollet@serli.com), James R. Perkins
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.util.Collection<javax.lang.model.element.AnnotationMirror>getAnnotations(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> groupedAnnotation, java.lang.Class<? extends java.lang.annotation.Annotation> annotation)Returns annotations that are associated with the element that match theannotationparameter type.static javax.lang.model.element.TypeElementgetClassAnnotationValue(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotation)Retrieves the first attribute value from the annotation and assumes it's aclasstype.static javax.lang.model.element.TypeElementgetClassAnnotationValue(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotation, java.lang.String attributeName)Retrieves the attribute value from the annotation and assumes it's aclasstype.static java.util.List<javax.lang.model.type.TypeMirror>getClassArrayAnnotationValue(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotation, java.lang.String attributeName)Retrieves the attribute value from the annotation and assumes it's an arrayclasses.static java.util.List<? extends javax.lang.model.type.TypeMirror>getTypeArguments(javax.lang.model.element.Element element)Returns the type arguments for the element.static java.util.List<? extends javax.lang.model.type.TypeMirror>getTypeArguments(javax.lang.model.type.TypeMirror type)Returns the type arguments for the type.static booleanhasConstructor(javax.lang.model.util.Types types, javax.lang.model.element.Element element, java.util.List<javax.lang.model.type.TypeMirror> args)Checks whether or not a constructor matching the parameters exists.static booleanisAnnotatedWith(javax.lang.model.AnnotatedConstruct annotatedConstruct, java.lang.Class<? extends java.lang.annotation.Annotation> clazz)Check if an element is annotated with the given annotation.static javax.lang.model.type.TypeMirrortoType(javax.annotation.processing.ProcessingEnvironment processingEnv, java.lang.Class<?> type)Returns the type as aTypeMirror.static javax.lang.model.type.TypeMirrortoType(javax.lang.model.util.Elements elements, java.lang.Class<?> type)Returns the type as aTypeMirror.static javax.lang.model.element.TypeElementtoTypeElement(javax.annotation.processing.ProcessingEnvironment processingEnv, java.lang.Class<?> type)Returns the type as aTypeMirror.static javax.lang.model.element.TypeElementtoTypeElement(javax.lang.model.util.Elements elements, java.lang.Class<?> type)Returns the type as aTypeMirror.
-
-
-
Method Detail
-
getTypeArguments
public static java.util.List<? extends javax.lang.model.type.TypeMirror> getTypeArguments(javax.lang.model.element.Element element)
Returns the type arguments for the element. If the elements type is not aDeclaredTypeor the element does not have any type arguments an empty list is returned.- Parameters:
element- the element to get the type arguments for- Returns:
- the type arguments or an empty list
-
getTypeArguments
public static java.util.List<? extends javax.lang.model.type.TypeMirror> getTypeArguments(javax.lang.model.type.TypeMirror type)
Returns the type arguments for the type. If the type is not aDeclaredTypeor the type does not have any type arguments an empty list is returned.- Parameters:
type- the type to get the type arguments for- Returns:
- the type arguments or an empty list
-
isAnnotatedWith
public static boolean isAnnotatedWith(javax.lang.model.AnnotatedConstruct annotatedConstruct, java.lang.Class<? extends java.lang.annotation.Annotation> clazz)Check if an element is annotated with the given annotation.- Parameters:
annotatedConstruct- the object to look for the annotation on.clazz- the annotation class- Returns:
trueif the element is annotated, otherwisefalse- Throws:
java.lang.IllegalArgumentException- if element parameter is null
-
getClassAnnotationValue
public static javax.lang.model.element.TypeElement getClassAnnotationValue(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotation)Retrieves the first attribute value from the annotation and assumes it's aclasstype.- Parameters:
element- the element the annotation is onannotation- the annotation to get the value from- Returns:
- a
TypeElementrepresenting the value for the first annotation attribute ornullif no attributes were found
-
getClassAnnotationValue
public static javax.lang.model.element.TypeElement getClassAnnotationValue(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotation, java.lang.String attributeName)Retrieves the attribute value from the annotation and assumes it's aclasstype.- Parameters:
element- the element the annotation is onannotation- the annotation to get the value fromattributeName- the name of the attribute to retrieve the class value for- Returns:
- a
TypeElementrepresenting the value for the annotation attribute ornullif the attribute was not found
-
getClassArrayAnnotationValue
public static java.util.List<javax.lang.model.type.TypeMirror> getClassArrayAnnotationValue(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotation, java.lang.String attributeName)Retrieves the attribute value from the annotation and assumes it's an arrayclasses.- Parameters:
element- the element the annotation is onannotation- the annotation to get the value fromattributeName- the name of the attribute to retrieve the class value array for- Returns:
- a list of
TypeMirrorrepresenting the value for the annotation attribute or an empty list
-
getAnnotations
public static java.util.Collection<javax.lang.model.element.AnnotationMirror> getAnnotations(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> groupedAnnotation, java.lang.Class<? extends java.lang.annotation.Annotation> annotation)Returns annotations that are associated with the element that match theannotationparameter type. If thegroupedAnnotationis notnullthen any repeated annotations that math theannotationparameter type are also returned.The
groupedAnnotationmust have a value attribute that includes an array of annotations that math theannotationparameter type.- Parameters:
element- the element to search for annotationsgroupedAnnotation- the grouped annotation, e.g. collector for repeatable annotations, ornullif not a repeatable annotationannotation- the annotation to search for- Returns:
- a collection matched annotations
-
hasConstructor
public static boolean hasConstructor(javax.lang.model.util.Types types, javax.lang.model.element.Element element, java.util.List<javax.lang.model.type.TypeMirror> args)Checks whether or not a constructor matching the parameters exists.- Parameters:
types- the type utility used to compare the type argumentselement- the element that contains the constructorsargs- the arguments the constructor should match- Returns:
trueif a matching constructor was found otherwisefalse
-
toTypeElement
public static javax.lang.model.element.TypeElement toTypeElement(javax.annotation.processing.ProcessingEnvironment processingEnv, java.lang.Class<?> type)Returns the type as aTypeMirror.- Parameters:
processingEnv- the processing environment to get the elements utilitytype- the type to create theTypeMirrorfor- Returns:
- the type
-
toTypeElement
public static javax.lang.model.element.TypeElement toTypeElement(javax.lang.model.util.Elements elements, java.lang.Class<?> type)Returns the type as aTypeMirror.- Parameters:
elements- the element utility used to generate the tye typetype- the type to create theTypeMirrorfor- Returns:
- the type
-
toType
public static javax.lang.model.type.TypeMirror toType(javax.annotation.processing.ProcessingEnvironment processingEnv, java.lang.Class<?> type)Returns the type as aTypeMirror.- Parameters:
processingEnv- the processing environment to get the elements utilitytype- the type to create theTypeMirrorfor- Returns:
- the type
-
toType
public static javax.lang.model.type.TypeMirror toType(javax.lang.model.util.Elements elements, java.lang.Class<?> type)Returns the type as aTypeMirror.- Parameters:
elements- the element utility used to generate the tye typetype- the type to create theTypeMirrorfor- Returns:
- the type
-
-