private static final class BasicAnnotationProcessor.ElementName
extends java.lang.Object
It's unfortunate that we have to track types and packages separately, but since there are
two different methods to look them up in Elements
, we end up with a lot of parallel
logic. :(
Packages declared (and annotated) in package-info.java
are tracked as deferred
packages, type elements are tracked directly, and all other elements are tracked via their
nearest enclosing type.
Modifier and Type | Class and Description |
---|---|
private static class |
BasicAnnotationProcessor.ElementName.Kind |
Modifier and Type | Field and Description |
---|---|
private BasicAnnotationProcessor.ElementName.Kind |
kind |
private java.lang.String |
name |
Modifier | Constructor and Description |
---|---|
private |
ElementName(BasicAnnotationProcessor.ElementName.Kind kind,
java.lang.String name) |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object object) |
(package private) static BasicAnnotationProcessor.ElementName |
forAnnotatedElement(javax.lang.model.element.Element element)
An
BasicAnnotationProcessor.ElementName for an annotated element. |
(package private) static BasicAnnotationProcessor.ElementName |
forPackageName(java.lang.String packageName)
An
BasicAnnotationProcessor.ElementName for a package. |
(package private) static BasicAnnotationProcessor.ElementName |
forTypeName(java.lang.String typeName)
An
BasicAnnotationProcessor.ElementName for a type. |
(package private) com.google.common.base.Optional<? extends javax.lang.model.element.Element> |
getElement(javax.lang.model.util.Elements elements)
The
Element whose fully-qualified name is name() . |
int |
hashCode() |
(package private) java.lang.String |
name()
The fully-qualified name of the element.
|
private final BasicAnnotationProcessor.ElementName.Kind kind
private final java.lang.String name
private ElementName(BasicAnnotationProcessor.ElementName.Kind kind, java.lang.String name)
static BasicAnnotationProcessor.ElementName forPackageName(java.lang.String packageName)
BasicAnnotationProcessor.ElementName
for a package.static BasicAnnotationProcessor.ElementName forTypeName(java.lang.String typeName)
BasicAnnotationProcessor.ElementName
for a type.static BasicAnnotationProcessor.ElementName forAnnotatedElement(javax.lang.model.element.Element element)
BasicAnnotationProcessor.ElementName
for an annotated element. If element
is a package, uses the
fully qualified name of the package. If it's a type, uses its fully qualified name.
Otherwise, uses the fully-qualified name of the nearest enclosing type.java.lang.String name()
com.google.common.base.Optional<? extends javax.lang.model.element.Element> getElement(javax.lang.model.util.Elements elements)
Element
whose fully-qualified name is name()
. Absent if the relevant
method on Elements
returns null
.public boolean equals(java.lang.Object object)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object