Modifier and Type | Method and Description |
---|---|
static ExecutableElement |
asExecutable(Element element)
Returns the given
Element instance as ExecutableElement . |
static PackageElement |
asPackage(Element element)
Returns the given
Element instance as PackageElement . |
static TypeElement |
asType(Element element)
Returns the given
Element instance as TypeElement . |
static VariableElement |
asVariable(Element element)
Returns the given
Element instance as VariableElement . |
static com.google.common.base.Optional<AnnotationMirror> |
getAnnotationMirror(Element element,
Class<? extends Annotation> annotationClass)
Returns an
AnnotationMirror for the annotation of type annotationClass on
element , or Optional.absent() if no such annotation exists. |
static com.google.common.collect.ImmutableSet<ExecutableElement> |
getLocalAndInheritedMethods(TypeElement type,
Elements elementUtils)
Returns the set of all non-private methods from
type , including methods that it
inherits from its ancestors. |
static PackageElement |
getPackage(Element element)
An alternate implementation of
Elements.getPackageOf(javax.lang.model.element.Element) that does not require an
Elements instance. |
static com.google.common.base.Predicate<Element> |
hasModifiers(Modifier... modifiers)
Returns a
Predicate that can be used to filter elements by Modifier . |
static com.google.common.base.Predicate<Element> |
hasModifiers(Set<Modifier> modifiers)
Returns a
Predicate that can be used to filter elements by Modifier . |
static boolean |
isAnnotationPresent(Element element,
Class<? extends Annotation> annotationClass)
Returns
true iff the given element has an AnnotationMirror whose
annotation type has the same canonical name
as that of annotationClass . |
static boolean |
isType(Element element)
Returns true if the given
Element instance is a TypeElement . |
public static PackageElement getPackage(Element element)
Elements.getPackageOf(javax.lang.model.element.Element)
that does not require an
Elements
instance.NullPointerException
- if element
is null
public static PackageElement asPackage(Element element)
Element
instance as PackageElement
.
This method is functionally equivalent to an instanceof
check and a cast, but should
always be used over that idiom as instructed in the documentation for Element
.
NullPointerException
- if element
is null
IllegalArgumentException
- if element
isn't a PackageElement
.public static boolean isType(Element element)
Element
instance is a TypeElement
.
This method is functionally equivalent to an instanceof
check, but should
always be used over that idiom as instructed in the documentation for Element
.
NullPointerException
- if element
is null
public static TypeElement asType(Element element)
Element
instance as TypeElement
.
This method is functionally equivalent to an instanceof
check and a cast, but should
always be used over that idiom as instructed in the documentation for Element
.
NullPointerException
- if element
is null
IllegalArgumentException
- if element
isn't a TypeElement
.public static VariableElement asVariable(Element element)
Element
instance as VariableElement
.
This method is functionally equivalent to an instanceof
check and a cast, but should
always be used over that idiom as instructed in the documentation for Element
.
NullPointerException
- if element
is null
IllegalArgumentException
- if element
isn't a VariableElement
.public static ExecutableElement asExecutable(Element element)
Element
instance as ExecutableElement
.
This method is functionally equivalent to an instanceof
check and a cast, but should
always be used over that idiom as instructed in the documentation for Element
.
NullPointerException
- if element
is null
IllegalArgumentException
- if element
isn't a ExecutableElement
.public static boolean isAnnotationPresent(Element element, Class<? extends Annotation> annotationClass)
true
iff the given element has an AnnotationMirror
whose
annotation type has the same canonical name
as that of annotationClass
. This method is a safer alternative to calling
Element.getAnnotation(java.lang.Class<A>)
and checking for null
as it avoids any interaction with
annotation proxies.public static com.google.common.base.Optional<AnnotationMirror> getAnnotationMirror(Element element, Class<? extends Annotation> annotationClass)
AnnotationMirror
for the annotation of type annotationClass
on
element
, or Optional.absent()
if no such annotation exists. This method is a
safer alternative to calling Element.getAnnotation(java.lang.Class<A>)
as it avoids any interaction with
annotation proxies.public static com.google.common.base.Predicate<Element> hasModifiers(Modifier... modifiers)
Predicate
that can be used to filter elements by Modifier
.
The predicate returns true
if the input Element
has all of the given
modifiers
, perhaps in addition to others.
Here is an example how one could get a List of static methods of a class:
FluentIterable.from(ElementFilter.methodsIn(clazzElement.getEnclosedElements()))
.filter(MoreElements.hasModifiers(Modifier.STATIC).toList();
public static com.google.common.base.Predicate<Element> hasModifiers(Set<Modifier> modifiers)
Predicate
that can be used to filter elements by Modifier
.
The predicate returns true
if the input Element
has all of the given
modifiers
, perhaps in addition to others.
Here is an example how one could get a List of methods with certain modifiers of a class:
Set<Modifier> modifiers = ...;
FluentIterable.from(ElementFilter.methodsIn(clazzElement.getEnclosedElements()))
.filter(MoreElements.hasModifiers(modifiers).toList();
public static com.google.common.collect.ImmutableSet<ExecutableElement> getLocalAndInheritedMethods(TypeElement type, Elements elementUtils)
type
, including methods that it
inherits from its ancestors. Inherited methods that are overridden are not included in the
result. So if type
defines public String toString()
, the returned set will
contain that method, but not the toString()
method defined by Object
.
The returned set may contain more than one method with the same signature, if
type
inherits those methods from different ancestors. For example, if it
inherits from unrelated interfaces One
and Two
which each define
void foo();
, and if it does not itself override the foo()
method,
then both One.foo()
and Two.foo()
will be in the returned set.
type
- the type whose own and inherited methods are to be returnedelementUtils
- an Elements
object, typically returned by
processingEnv
.getElementUtils()
Copyright © 2018 Google, Inc.. All rights reserved.