Class CFAbstractValue.AnnotationSetCombiner

    • Constructor Detail

      • AnnotationSetCombiner

        protected AnnotationSetCombiner()
    • Method Detail

      • combineSets

        protected AnnotationMirrorSet combineSets​(javax.lang.model.type.TypeMirror aTypeMirror,
                                                  AnnotationMirrorSet aSet,
                                                  javax.lang.model.type.TypeMirror bTypeMirror,
                                                  AnnotationMirrorSet bSet,
                                                  boolean canCombinedSetBeMissingAnnos)
        Combines the two sets.
        Parameters:
        aTypeMirror - the type mirror associated with aSet
        aSet - a set of annotation mirrors
        bTypeMirror - the type mirror associated with bSet
        bSet - a set of annotation mirrors
        canCombinedSetBeMissingAnnos - whether or not the combined set can be missing annotations
        Returns:
        the combined sets
      • combineTwoAnnotations

        protected abstract @Nullable javax.lang.model.element.AnnotationMirror combineTwoAnnotations​(javax.lang.model.element.AnnotationMirror a,
                                                                                                     javax.lang.model.type.TypeMirror aTypeMirror,
                                                                                                     javax.lang.model.element.AnnotationMirror b,
                                                                                                     javax.lang.model.type.TypeMirror bTypeMirror,
                                                                                                     javax.lang.model.element.AnnotationMirror top)
        Returns the result of combining the two annotations. This method is called when an annotation exists in both sets for the hierarchy whose top is top.
        Parameters:
        a - an annotation in the hierarchy
        aTypeMirror - the type that is annotated by a
        b - an annotation in the hierarchy
        bTypeMirror - the type that is annotated by b
        top - the top annotation in the hierarchy
        Returns:
        the result of combining the two annotations or null if no combination exists
      • combineTwoTypeVars

        protected abstract @Nullable javax.lang.model.element.AnnotationMirror combineTwoTypeVars​(AnnotatedTypeMirror.AnnotatedTypeVariable aAtv,
                                                                                                  AnnotatedTypeMirror.AnnotatedTypeVariable bAtv,
                                                                                                  javax.lang.model.element.AnnotationMirror top,
                                                                                                  boolean canCombinedSetBeMissingAnnos)
        Returns the primary annotation that result from of combining the two AnnotatedTypeMirror.AnnotatedTypeVariable. If the result has no primary annotation, null is returned. This method is called when no annotation exists in either sets for the hierarchy whose top is top.
        Parameters:
        aAtv - a type variable that does not have a primary annotation in top hierarchy
        bAtv - a type variable that does not have a primary annotation in top hierarchy
        top - the top annotation in the hierarchy
        canCombinedSetBeMissingAnnos - whether or not
        Returns:
        the result of combining the two type variables, which may be null
      • combineAnnotationWithTypeVar

        protected abstract @Nullable javax.lang.model.element.AnnotationMirror combineAnnotationWithTypeVar​(javax.lang.model.element.AnnotationMirror annotation,
                                                                                                            AnnotatedTypeMirror.AnnotatedTypeVariable typeVar,
                                                                                                            javax.lang.model.element.AnnotationMirror top,
                                                                                                            boolean canCombinedSetBeMissingAnnos)
        Returns the result of combining annotation with typeVar.

        This is called when an annotation exists for the hierarchy in one set, but not the other.

        Parameters:
        annotation - an annotation
        typeVar - a type variable that does not have a primary annotation in the hierarchy
        top - the top annotation of the hierarchy
        canCombinedSetBeMissingAnnos - whether or not
        Returns:
        the result of combining annotation with typeVar