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<? extends AnnotationMirror> |
getAllAnnotationMirrors(Element e)
Returns all annotations present on an element, whether
directly present or present via inheritance.
|
List<? extends Element> |
getAllMembers(TypeElement type)
Returns all members of a type element, whether inherited or
declared directly.
|
Name |
getBinaryName(TypeElement type)
Returns the binary name of a type element.
|
String |
getConstantExpression(Object value)
Returns the text of a constant expression representing a
primitive value or a string.
|
String |
getDocComment(Element e)
Returns the text of the documentation ("Javadoc")
comment of an element.
|
Map<? extends ExecutableElement,? extends AnnotationValue> |
getElementValuesWithDefaults(AnnotationMirror a)
Returns the values of an annotation's elements, including defaults.
|
Name |
getName(CharSequence cs)
Return a name with the same sequence of characters as the
argument.
|
PackageElement |
getPackageElement(CharSequence name)
Returns a package given its fully qualified name.
|
PackageElement |
getPackageOf(Element type)
Returns the package of an element.
|
TypeElement |
getTypeElement(CharSequence name)
Returns a type element given its canonical name.
|
boolean |
hides(Element hider,
Element hidden)
Tests whether one type, method, or field hides another.
|
boolean |
isDeprecated(Element e)
Returns
true if the element is deprecated, false otherwise. |
boolean |
isFunctionalInterface(TypeElement type)
Returns
true if the type element is a functional interface, false otherwise. |
boolean |
overrides(ExecutableElement overrider,
ExecutableElement overridden,
TypeElement type)
Tests whether one method, as a member of a given type,
overrides another method.
|
void |
printElements(Writer w,
Element... elements)
Prints a representation of the elements to the given writer in
the specified order.
|
PackageElement getPackageElement(CharSequence name)
name
- fully qualified package name, or "" for an unnamed packagenull
if it cannot be foundTypeElement getTypeElement(CharSequence name)
name
- the canonical namenull
if it cannot be foundMap<? extends ExecutableElement,? extends AnnotationValue> getElementValuesWithDefaults(AnnotationMirror a)
a
- annotation to examineAnnotationMirror.getElementValues()
String getDocComment(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 examinednull
if there is noneboolean isDeprecated(Element e)
true
if the element is deprecated, false
otherwise.e
- the element being examinedtrue
if the element is deprecated, false
otherwiseName getBinaryName(TypeElement type)
type
- the type element being examinedTypeElement.getQualifiedName()
PackageElement getPackageOf(Element type)
type
- the element being examinedList<? extends Element> getAllMembers(TypeElement type)
Note that elements of certain kinds can be isolated using
methods in ElementFilter
.
type
- the type being examinedElement.getEnclosedElements()
List<? extends AnnotationMirror> getAllAnnotationMirrors(Element e)
e
- the element being examinedElement.getAnnotationMirrors()
,
AnnotatedConstruct
boolean hides(Element hider, Element hidden)
hider
- the first elementhidden
- the second elementtrue
if and only if the first element hides
the secondboolean overrides(ExecutableElement overrider, 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 overrideroverridden
- the second method, possibly being overriddentype
- the type of which the first method is a membertrue
if and only if the first method overrides
the secondString getConstantExpression(Object value)
value
- a primitive value or stringIllegalArgumentException
- if the argument is not a primitive
value or stringVariableElement.getConstantValue()
void printElements(Writer w, Element... elements)
w
- the writer to print the output toelements
- the elements to printName getName(CharSequence cs)
cs
- the character sequence to return as a nameboolean isFunctionalInterface(TypeElement type)
true
if the type element is a functional interface, false
otherwise.type
- the type element being examinedtrue
if the element is a functional interface, false
otherwise Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.