public interface Elements
Compatibility Note: Methods may be added to this interface in future releases of the platform.
ProcessingEnvironment.getElementUtils()
| Modifier and Type | Method and Description |
|---|---|
List |
getAllAnnotationMirrors(Element
Returns all annotations
present on an element, whether directly present or present via inheritance.
|
List |
getAllMembers(TypeElement
Returns all members of a type element, whether inherited or declared directly.
|
Name |
getBinaryName(TypeElement
Returns the
binary name of a type element.
|
String |
getConstantExpression(Object
Returns the text of a
constant expression representing a primitive value or a string.
|
String |
getDocComment(Element
Returns the text of the documentation ("Javadoc") comment of an element.
|
Map |
getElementValuesWithDefaults(AnnotationMirror
Returns the values of an annotation's elements, including defaults.
|
Name |
getName(CharSequence
Return a name with the same sequence of characters as the argument.
|
PackageElement |
getPackageElement(CharSequence
Returns a package given its fully qualified name.
|
PackageElement |
getPackageOf(Element
Returns the package of an element.
|
TypeElement |
getTypeElement(CharSequence
Returns a type element given its canonical name.
|
boolean |
hides(Element
Tests whether one type, method, or field hides another.
|
boolean |
isDeprecated(Element
Returns
true if the element is deprecated,
false otherwise.
|
boolean |
isFunctionalInterface(TypeElement
Returns
true if the type element is a functional interface,
false otherwise.
|
boolean |
overrides(ExecutableElement
Tests whether one method, as a member of a given type, overrides another method.
|
void |
printElements(Writer
Prints a representation of the elements to the given writer in the specified order.
|
PackageElementgetPackageElement(CharSequence name)
name - fully qualified package name, or "" for an unnamed package
null if it cannot be found
TypeElementgetTypeElement(CharSequence name)
name - the canonical name
null if it cannot be found
Map<? extends ExecutableElement ,? extends AnnotationValue > getElementValuesWithDefaults(AnnotationMirror a)
a - annotation to examine
AnnotationMirror.getElementValues()
StringgetDocComment(Element e)
A documentation comment of an element is a comment that begins with "/**" , ends with a separate "*/", and immediately precedes the element, ignoring white space. Therefore, a documentation comment contains at least three"*" characters. The text returned for the documentation comment is a processed form of the comment as it appears in source code. The leading "/**" and trailing "*/" are removed. For lines of the comment starting after the initial "/**", leading white space characters are discarded as are any consecutive "*" characters appearing after the white space or starting the line. The processed lines are then concatenated together (including line terminators) and returned.
e - the element being examined
null if there is none
boolean isDeprecated(Elemente)
true if the element is deprecated,
false otherwise.
e - the element being examined
true if the element is deprecated,
false otherwise
NamegetBinaryName(TypeElement type)
type - the type element being examined
TypeElement.getQualifiedName()
PackageElementgetPackageOf(Element type)
type - the element being examined
List<? extends Element > getAllMembers(TypeElement type)
Note that elements of certain kinds can be isolated using methods in ElementFilter.
type - the type being examined
Element.getEnclosedElements()
List<? extends AnnotationMirror > getAllAnnotationMirrors(Element e)
e - the element being examined
Element.getAnnotationMirrors() ,
AnnotatedConstruct
boolean hides(Elementhider, Element hidden)
hider - the first element
hidden - the second element
true if and only if the first element hides the second
boolean overrides(ExecutableElementoverrider, ExecutableElement overridden, TypeElement type)
In the simplest and most typical usage, the value of the type parameter will simply be the class or interface directly enclosing overrider (the possibly-overriding method). For example, suppose m1 represents the method String.hashCode and m2 represents Object.hashCode. We can then ask whether m1 overrides m2 within the class String (it does):
assert elements.overrides(m1, m2, elements.getTypeElement("java.lang.String"));
A more interesting case can be illustrated by the following example in which a method in type
A does not override a like-named method in type
B:
When viewed as a member of a third typeclass A { public void m() {} }
interface B { void m(); }
...
m1 = ...; // A.m
m2 = ...; // B.m
assert ! elements.overrides(m1, m2, elements.getTypeElement("A"));
C, however, the method in
A does override the one in
B:
class C extends A implements B {}
...
assert elements.overrides(m1, m2, elements.getTypeElement("C"));
overrider - the first method, possible overrider
overridden - the second method, possibly being overridden
type - the type of which the first method is a member
true if and only if the first method overrides the second
StringgetConstantExpression(Object value)
value - a primitive value or string
IllegalArgumentException - if the argument is not a primitive value or string
VariableElement.getConstantValue()
void printElements(Writerw, Element ... elements)
w - the writer to print the output to
elements - the elements to print
NamegetName(CharSequence cs)
cs - the character sequence to return as a name
boolean isFunctionalInterface(TypeElementtype)
true if the type element is a functional interface,
false otherwise.
type - the type element being examined
true if the element is a functional interface,
false otherwise