Class SuperficialValidation


  • public final class SuperficialValidation
    extends java.lang.Object
    A utility class that traverses Element 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  
    • 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 from validateElement(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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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
    • Constructor Detail

      • SuperficialValidation

        private SuperficialValidation()
    • 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 from validateElement(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 an ExecutableType, the parameter and return types must be fully defined, as must types declared in a throws 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)