Interface ViewpointAdapter

  • All Known Implementing Classes:
    AbstractViewpointAdapter

    public interface ViewpointAdapter
    A viewpoint adapter.

    Viewpoint adaptation applies to member/field accesses, constructor invocations, method invocations, and type parameter bound instantiations.

    • Method Detail

      • viewpointAdaptMember

        void viewpointAdaptMember​(AnnotatedTypeMirror receiverType,
                                  javax.lang.model.element.Element memberElement,
                                  AnnotatedTypeMirror memberType)
        Viewpoint adapts a member/field access.

        Developer notes: When this method is invoked on a member/field with a type given by a type parameter, the type arguments are correctly substituted, and memberType is already in a good shape. Only annotations on the memberType should be replaced by the viewpoint adapted ones.

        Parameters:
        receiverType - receiver type through which the member/field is accessed.
        memberElement - element of the accessed member/field.
        memberType - accessed type of the member/field. After the method returns, it will be mutated to the viewpoint adapted result.
      • viewpointAdaptConstructor

        void viewpointAdaptConstructor​(AnnotatedTypeMirror receiverType,
                                       javax.lang.model.element.ExecutableElement constructorElt,
                                       AnnotatedTypeMirror.AnnotatedExecutableType constructorType)
        Viewpoint adapts a constructor invocation. Takes an unsubstituted method invocation type and performs the viewpoint adaption in place, modifying the parameter.
        Parameters:
        receiverType - receiver type through which a constructor is invoked.
        constructorElt - element of the invoked constructor.
        constructorType - invoked type of the constructor with type variables not substituted. After the method returns, it will be mutated to the viewpoint adapted constructor type.
      • viewpointAdaptMethod

        void viewpointAdaptMethod​(AnnotatedTypeMirror receiverType,
                                  javax.lang.model.element.ExecutableElement methodElt,
                                  AnnotatedTypeMirror.AnnotatedExecutableType methodType)
        Viewpoint adapts a method invocation. Takes an unsubstituted method invocation type and performs the viewpoint adaption in place, modifying the parameter.
        Parameters:
        receiverType - receiver type through which a method is invoked.
        methodElt - element of the invoked method. Only used to determine whether this type should be viewpoint adapted
        methodType - invoked type of the method with type variables not substituted. After the method returns, it will be mutated to the viewpoint adapted method type.
      • viewpointAdaptTypeParameterBounds

        void viewpointAdaptTypeParameterBounds​(AnnotatedTypeMirror receiverType,
                                               java.util.List<AnnotatedTypeParameterBounds> typeParameterBounds)
        Viewpoint adapts a type parameter bound when being instantiated.
        Parameters:
        receiverType - receiver type through which the type parameter is instantiated.
        typeParameterBounds - a list of type parameter bounds. After the method returns, it will be mutated to the viewpoint adapted type parameter bounds.