|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjavax.annotation.processing.AbstractProcessor
com.sun.source.util.AbstractTypeProcessor
checkers.source.SourceChecker
checkers.basetype.BaseTypeChecker
checkers.fenum.FenumChecker
@SupportedOptions(value="quals") public class FenumChecker extends BaseTypeChecker
The main checker class for the fake enum checker. There are two options to distinguish different enumerators:
@Fenum("Name"): introduces a fake enumerator with the name
"Name". Enumerators with different names are distinct. The default name is
empty, but you are encouraged to use a unique name for your purpose.
-Aqual command line argument.
| Modifier and Type | Field and Description |
|---|
| Fields inherited from class checkers.source.SourceChecker |
|---|
currentPath, currentRoot, env, messager, messages, trees |
| Fields inherited from class javax.annotation.processing.AbstractProcessor |
|---|
processingEnv |
| Constructor and Description |
|---|
FenumChecker()
|
| Modifier and Type | Method and Description |
|---|---|
protected Set<Class<? extends Annotation>> |
createSupportedTypeQualifiers()
Copied from BasicChecker. |
Collection<String> |
getSuppressWarningsKey()
Copied from BasicChecker; cannot reuse it, because BasicChecker is final. |
boolean |
isValidUse(AnnotatedTypeMirror.AnnotatedDeclaredType declarationType,
AnnotatedTypeMirror.AnnotatedDeclaredType useType)
Tests that the qualifiers present on the useType are valid qualifiers, given the qualifiers on the declaration of the type, declarationType. |
| Methods inherited from class checkers.basetype.BaseTypeChecker |
|---|
createFactory, createQualifierHierarchy, createSourceVisitor, createTypeHierarchy, getQualifierHierarchy, getSupportedLintOptions, getSupportedTypeQualifiers, init, isAssignable, isSubtype |
| Methods inherited from class checkers.source.SourceChecker |
|---|
fullMessageOf, getLintOption, getLintOption, getMessages, getProcessingEnvironment, getShouldSkip, getSupportedAnnotationTypes, getSupportedOptions, getSupportedSourceVersion, message, report, typeProcess |
| Methods inherited from class com.sun.source.util.AbstractTypeProcessor |
|---|
process, typeProcessingOver |
| Methods inherited from class javax.annotation.processing.AbstractProcessor |
|---|
getCompletions, isInitialized, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public FenumChecker()
| Method Detail |
|---|
protected Set<Class<? extends Annotation>> createSupportedTypeQualifiers()
createSupportedTypeQualifiers in class BaseTypeCheckerTypeQualifierspublic Collection<String> getSuppressWarningsKey()
getSuppressWarningsKey in class SourceCheckerSuppressWarningsKey
public boolean isValidUse(AnnotatedTypeMirror.AnnotatedDeclaredType declarationType,
AnnotatedTypeMirror.AnnotatedDeclaredType useType)
BaseTypeChecker
The check is shallow, as it does not descend into generic or array
types (i.e. only performing the validity check on the raw type or
outmost array dimension). BaseTypeVisitor.validateTypeOf(Tree)
would call this for each type argument or array dimention separately.
For instance, in the IGJ type system, a @Mutable is an invalid
qualifier for String, as String is declared as
@Immutable String.
In most cases, useType simply needs to be a subtype of
declarationType, but there are exceptions. In IGJ, a variable may be
declared @ReadOnly String, even though String is
@Immutable String; ReadOnly is not a subtype of
Immutable.
isValidUse in class BaseTypeCheckerdeclarationType - the type of the class (TypeElement)useType - the use of the class (instance type)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||