public interface Check
extends org.revapi.configuration.Configurable
The methods on this interface are called in the following order:
initialize
setOldTypeEnvironment
setNewTypeEnvironment
(visitClass
(visitClass ... visitEnd)* //inner classes
(visitField
visitAnnotation*
visitEnd)*
(visitMethod
(visitMethodParameter
visitAnnotation*
visitEnd)*
visitAnnotation*
visitEnd)*
visitAnnotation*
visitEnd)*
Consider inheriting from the CheckBase instead of directly implementing this
interface because it takes care of matching the corresponding visit*() and visitEnd() calls.
| Modifier and Type | Interface and Description |
|---|---|
static class |
Check.Type |
| Modifier and Type | Method and Description |
|---|---|
EnumSet<Check.Type> |
getInterest()
Each check typically checks only a single type of java element - a method or an annotation - but may be
interested in more.
|
boolean |
isDescendingOnNonExisting()
When the analyzer encounters an element that doesn't have a matching counterpart in the other version of the
API, by default, the analysis doesn't descend into the children of the existing element.
|
void |
setNewTypeEnvironment(TypeEnvironment env)
The environment containing the new version of the classes.
|
void |
setOldTypeEnvironment(TypeEnvironment env)
The environment containing the old version of the classes.
|
List<org.revapi.Difference> |
visitAnnotation(JavaAnnotationElement oldAnnotation,
JavaAnnotationElement newAnnotation)
Visiting annotation is slightly different, because it is not followed by the standard
visitEnd() call. |
void |
visitClass(JavaTypeElement oldType,
JavaTypeElement newType) |
List<org.revapi.Difference> |
visitEnd()
Each of the other visit* calls is followed by a corresponding call to this method in a stack-like
manner.
|
void |
visitField(JavaFieldElement oldField,
JavaFieldElement newField) |
void |
visitMethod(JavaMethodElement oldMethod,
JavaMethodElement newMethod) |
void |
visitMethodParameter(JavaMethodParameterElement oldParameter,
JavaMethodParameterElement newParameter) |
boolean isDescendingOnNonExisting()
void setOldTypeEnvironment(@Nonnull TypeEnvironment env)
Called once after the check has been instantiated.
env - the environment to obtain the helper objects using which one can navigate and examine typesvoid setNewTypeEnvironment(@Nonnull TypeEnvironment env)
Called once after the check has been instantiated.
env - the environment to obtain the helper objects using which one can navigate and examine typesEnumSet<Check.Type> getInterest()
This method must be used by the implementations to advertise what type of checks they are interested in.
Only the appropriate visit* calls will then be made on the check instances.
@Nullable List<org.revapi.Difference> visitEnd()
I.e. a series of calls might look like this:
visitClass();
visitMethod();
visitEnd();
visitMethod();
visitEnd();
visitEnd(); //"ends" the visitClass()
void visitClass(@Nullable JavaTypeElement oldType, @Nullable JavaTypeElement newType)
void visitMethod(@Nullable JavaMethodElement oldMethod, @Nullable JavaMethodElement newMethod)
void visitMethodParameter(@Nullable JavaMethodParameterElement oldParameter, @Nullable JavaMethodParameterElement newParameter)
void visitField(@Nullable JavaFieldElement oldField, @Nullable JavaFieldElement newField)
@Nullable List<org.revapi.Difference> visitAnnotation(@Nullable JavaAnnotationElement oldAnnotation, @Nullable JavaAnnotationElement newAnnotation)
visitEnd() call.
Instead, because visiting annotation is always "terminal" in a sense that an annotation doesn't have any child
elements, the list of differences is returned straight away.oldAnnotation - the annotation in the old APInewAnnotation - the annotation in the new APICopyright © 2014-2020 Lukas Krejci. All Rights Reserved.