Class SignatureAnnotatedTypeFactory

    • Field Detail

      • SIGNATURE_UNKNOWN

        protected final javax.lang.model.element.AnnotationMirror SIGNATURE_UNKNOWN
        The @SignatureUnknown annotation.
      • BINARY_NAME

        protected final javax.lang.model.element.AnnotationMirror BINARY_NAME
        The @BinaryName annotation.
      • INTERNAL_FORM

        protected final javax.lang.model.element.AnnotationMirror INTERNAL_FORM
        The @InternalForm annotation.
      • DOT_SEPARATED_IDENTIFIERS

        protected final javax.lang.model.element.AnnotationMirror DOT_SEPARATED_IDENTIFIERS
        The @DotSeparatedIdentifiers annotation.
      • CANONICAL_NAME

        protected final javax.lang.model.element.AnnotationMirror CANONICAL_NAME
        The @CanonicalName annotation.
      • CANONICAL_NAME_AND_BINARY_NAME

        protected final javax.lang.model.element.AnnotationMirror CANONICAL_NAME_AND_BINARY_NAME
      • PRIMITIVE_TYPE

        protected final javax.lang.model.element.AnnotationMirror PRIMITIVE_TYPE
        The @PrimitiveType annotation.
    • Constructor Detail

      • SignatureAnnotatedTypeFactory

        public SignatureAnnotatedTypeFactory​(BaseTypeChecker checker)
        Creates a SignatureAnnotatedTypeFactory.
        Parameters:
        checker - the type-checker associated with this type factory
    • Method Detail

      • createSupportedTypeQualifiers

        protected java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>> createSupportedTypeQualifiers()
        Description copied from class: AnnotatedTypeFactory
        Returns a mutable set of annotation classes that are supported by a checker.

        Subclasses may override this method to return a mutable set of their supported type qualifiers through one of the 5 approaches shown below.

        Subclasses should not call this method; they should call AnnotatedTypeFactory.getSupportedTypeQualifiers() instead.

        By default, a checker supports all annotations located in a subdirectory called qual that's located in the same directory as the checker. Note that only annotations defined with the @Target({ElementType.TYPE_USE}) meta-annotation (and optionally with the additional value of ElementType.TYPE_PARAMETER, but no other ElementType values) are automatically considered as supported annotations.

        To support a different set of annotations than those in the qual subdirectory, or that have other ElementType values, see examples below.

        In total, there are 5 ways to indicate annotations that are supported by a checker:

        1. Only support annotations located in a checker's qual directory:

          This is the default behavior. Simply place those annotations within the qual directory.

        2. Support annotations located in a checker's qual directory and a list of other annotations:

          Place those annotations within the qual directory, and override AnnotatedTypeFactory.createSupportedTypeQualifiers() by calling AnnotatedTypeFactory.getBundledTypeQualifiers(Class...) with a varargs parameter list of the other annotations. Code example:

           @Override protected Set<Class<? extends Annotation>> createSupportedTypeQualifiers() {
                return getBundledTypeQualifiers(Regex.class, PartialRegex.class, RegexBottom.class, UnknownRegex.class);
            } 
           
        3. Supporting only annotations that are explicitly listed: Override AnnotatedTypeFactory.createSupportedTypeQualifiers() and return a mutable set of the supported annotations. Code example:
           @Override protected Set<Class<? extends Annotation>> createSupportedTypeQualifiers() {
                return new HashSet<Class<? extends Annotation>>(
                        Arrays.asList(A.class, B.class));
            } 
           
          The set of qualifiers returned by AnnotatedTypeFactory.createSupportedTypeQualifiers() must be a fresh, mutable set. The methods AnnotatedTypeFactory.getBundledTypeQualifiers(Class...) must return a fresh, mutable set
        Overrides:
        createSupportedTypeQualifiers in class AnnotatedTypeFactory
        Returns:
        the type qualifiers supported this processor, or an empty set if none