Package com.google.auto.common
Class SuperficialValidation
- java.lang.Object
-
- com.google.auto.common.SuperficialValidation
-
public final class SuperficialValidation extends java.lang.Object
A utility class that traversesElement
instances and ensures that all type information is present and resolvable.
-
-
Field Summary
Fields Modifier and Type Field Description private static javax.lang.model.element.ElementVisitor<java.lang.Boolean,java.lang.Void>
ELEMENT_VALIDATING_VISITOR
private static javax.lang.model.type.TypeVisitor<java.lang.Boolean,java.lang.Void>
TYPE_VALIDATING_VISITOR
private static javax.lang.model.element.AnnotationValueVisitor<java.lang.Boolean,javax.lang.model.type.TypeMirror>
VALUE_VALIDATING_VISITOR
-
Constructor Summary
Constructors Modifier Constructor Description private
SuperficialValidation()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static boolean
isValidBaseElement(javax.lang.model.element.Element e)
private static boolean
validateAnnotation(javax.lang.model.element.AnnotationMirror annotationMirror)
private static boolean
validateAnnotations(java.lang.Iterable<? extends javax.lang.model.element.AnnotationMirror> annotationMirrors)
private static boolean
validateAnnotationValue(javax.lang.model.element.AnnotationValue annotationValue, javax.lang.model.type.TypeMirror expectedType)
private static boolean
validateAnnotationValues(java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> valueMap)
static boolean
validateElement(javax.lang.model.element.Element element)
Returns true if all types referenced by the given element are defined.static boolean
validateElements(java.lang.Iterable<? extends javax.lang.model.element.Element> elements)
Returns true if all of the given elements return true fromvalidateElement(Element)
.static boolean
validateType(javax.lang.model.type.TypeMirror type)
Returns true if the given type is fully defined.private static boolean
validateTypes(java.lang.Iterable<? extends javax.lang.model.type.TypeMirror> types)
-
-
-
Field Detail
-
ELEMENT_VALIDATING_VISITOR
private static final javax.lang.model.element.ElementVisitor<java.lang.Boolean,java.lang.Void> ELEMENT_VALIDATING_VISITOR
-
TYPE_VALIDATING_VISITOR
private static final javax.lang.model.type.TypeVisitor<java.lang.Boolean,java.lang.Void> TYPE_VALIDATING_VISITOR
-
VALUE_VALIDATING_VISITOR
private static final javax.lang.model.element.AnnotationValueVisitor<java.lang.Boolean,javax.lang.model.type.TypeMirror> VALUE_VALIDATING_VISITOR
-
-
Method Detail
-
validateElements
public static boolean validateElements(java.lang.Iterable<? extends javax.lang.model.element.Element> elements)
Returns true if all of the given elements return true fromvalidateElement(Element)
.
-
validateElement
public static boolean validateElement(javax.lang.model.element.Element element)
Returns true if all types referenced by the given element are defined. The exact meaning of this depends on the kind of element. For packages, it means that all annotations on the package are fully defined. For other element kinds, it means that types referenced by the element, anything it contains, and any of its annotations element are all defined.
-
isValidBaseElement
private static boolean isValidBaseElement(javax.lang.model.element.Element e)
-
validateTypes
private static boolean validateTypes(java.lang.Iterable<? extends javax.lang.model.type.TypeMirror> types)
-
validateType
public static boolean validateType(javax.lang.model.type.TypeMirror type)
Returns true if the given type is fully defined. This means that the type itself is defined, as are any types it references, such as any type arguments or type bounds. For anExecutableType
, the parameter and return types must be fully defined, as must types declared in athrows
clause or in the bounds of any type parameters.
-
validateAnnotations
private static boolean validateAnnotations(java.lang.Iterable<? extends javax.lang.model.element.AnnotationMirror> annotationMirrors)
-
validateAnnotation
private static boolean validateAnnotation(javax.lang.model.element.AnnotationMirror annotationMirror)
-
validateAnnotationValues
private static boolean validateAnnotationValues(java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> valueMap)
-
validateAnnotationValue
private static boolean validateAnnotationValue(javax.lang.model.element.AnnotationValue annotationValue, javax.lang.model.type.TypeMirror expectedType)
-
-