framework.src.org.checkerframework.qualframework.base.SimpleQualifiedTypeVisitor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of checker Show documentation
Show all versions of checker Show documentation
The Checker Framework enhances Java’s type system to
make it more powerful and useful. This lets software developers
detect and prevent errors in their Java programs.
The Checker Framework includes compiler plug-ins ("checkers")
that find bugs or verify their absence. It also permits you to
write your own compiler plug-ins.
package org.checkerframework.qualframework.base;
import org.checkerframework.qualframework.base.QualifiedTypeMirror;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedArrayType;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedDeclaredType;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedExecutableType;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedIntersectionType;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedNoType;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedNullType;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedPrimitiveType;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedTypeVariable;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedUnionType;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedWildcardType;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedTypeDeclaration;
import org.checkerframework.qualframework.base.QualifiedTypeMirror.QualifiedParameterDeclaration;
/**
* A simple implementation of {@link QualifiedTypeVisitor}, patterned after
* {@link javax.lang.model.util.SimpleTypeVisitor8}.
*/
public class SimpleQualifiedTypeVisitor implements QualifiedTypeVisitor {
protected final R DEFAULT_VALUE;
public SimpleQualifiedTypeVisitor() {
this(null);
}
public SimpleQualifiedTypeVisitor(R defaultValue) {
this.DEFAULT_VALUE = defaultValue;
}
protected R defaultAction(QualifiedTypeMirror type, P p) {
return DEFAULT_VALUE;
}
@Override
public R visit(QualifiedTypeMirror type) {
return visit(type, null);
}
@Override
public R visit(QualifiedTypeMirror type, P p) {
return (type == null) ? null : type.accept(this, p);
}
@Override
public R visitDeclared(QualifiedDeclaredType type, P p) {
return defaultAction(type, p);
}
@Override
public R visitIntersection(QualifiedIntersectionType type, P p) {
return defaultAction(type, p);
}
@Override
public R visitUnion(QualifiedUnionType type, P p) {
return defaultAction(type, p);
}
@Override
public R visitExecutable(QualifiedExecutableType type, P p) {
return defaultAction(type, p);
}
@Override
public R visitArray(QualifiedArrayType type, P p) {
return defaultAction(type, p);
}
@Override
public R visitTypeVariable(QualifiedTypeVariable type, P p) {
return defaultAction(type, p);
}
@Override
public R visitPrimitive(QualifiedPrimitiveType type, P p) {
return defaultAction(type, p);
}
@Override
public R visitNoType(QualifiedNoType type, P p) {
return defaultAction(type, p);
}
@Override
public R visitNull(QualifiedNullType type, P p) {
return defaultAction(type, p);
}
@Override
public R visitWildcard(QualifiedWildcardType type, P p) {
return defaultAction(type, p);
}
@Override
public R visitTypeDeclaration(QualifiedTypeDeclaration type, P p) {
return defaultAction(type, p);
}
@Override
public R visitParameterDeclaration(QualifiedParameterDeclaration type, P p) {
return defaultAction(type, p);
}
}