Class AnnotatedTypeMirror.AnnotatedExecutableType

  • All Implemented Interfaces:
    org.plumelib.util.DeepCopyable<AnnotatedTypeMirror>
    Enclosing class:
    AnnotatedTypeMirror

    public static class AnnotatedTypeMirror.AnnotatedExecutableType
    extends AnnotatedTypeMirror
    Represents a type of an executable. An executable is a method, constructor, or initializer.
    • Method Detail

      • isVarArgs

        public boolean isVarArgs()
        Returns true if this type represents a varargs method.
        Returns:
        true if this type represents a varargs method
      • accept

        public <R,​P> R accept​(AnnotatedTypeVisitor<R,​P> v,
                                    P p)
        Description copied from class: AnnotatedTypeMirror
        Applies a visitor to this type.
        Specified by:
        accept in class AnnotatedTypeMirror
        Type Parameters:
        R - the return type of the visitor's methods
        P - the type of the additional parameter to the visitor's methods
        Parameters:
        v - the visitor operating on this type
        p - additional parameter to the visitor
        Returns:
        a visitor-specified result
      • getUnderlyingType

        public javax.lang.model.type.ExecutableType getUnderlyingType()
        Description copied from class: AnnotatedTypeMirror
        Returns the underlying unannotated Java type, which this wraps.
        Overrides:
        getUnderlyingType in class AnnotatedTypeMirror
        Returns:
        the underlying type
      • addAnnotation

        @Deprecated
        public void addAnnotation​(javax.lang.model.element.AnnotationMirror annotation)
        Deprecated.
        add to the appropriate component
        It never makes sense to add annotations to an executable type. Instead, they should be added to the appropriate component.
        Overrides:
        addAnnotation in class AnnotatedTypeMirror
        Parameters:
        annotation - the annotation to add
      • getParameterTypes

        public java.util.List<AnnotatedTypeMirror> getParameterTypes()
        Returns the parameter types of this executable type, excluding the receiver.
        Returns:
        the parameter types of this executable type, excluding the receiver
      • getReturnType

        public AnnotatedTypeMirror getReturnType()
        The return type of a method or constructor. For constructors, the return type is not VOID, but the type of the enclosing class.
        Returns:
        the return type of this executable type
      • getReceiverType

        public @Nullable AnnotatedTypeMirror.AnnotatedDeclaredType getReceiverType()
        Returns the receiver type of this executable type; null for static methods and constructors of top-level classes.
        Returns:
        the receiver type of this executable type; null for static methods and constructors of top-level classes
      • getThrownTypes

        public java.util.List<AnnotatedTypeMirror> getThrownTypes()
        Returns the thrown types of this executable type.
        Returns:
        the thrown types of this executable type
      • getTypeVariables

        public java.util.List<AnnotatedTypeMirror.AnnotatedTypeVariable> getTypeVariables()
        Returns the type variables of this executable type, if any.
        Returns:
        the type variables of this executable type, if any
      • deepCopy

        public AnnotatedTypeMirror.AnnotatedExecutableType deepCopy​(boolean copyAnnotations)
        Description copied from class: AnnotatedTypeMirror
        Returns a deep copy of this type. A deep copy implies that each component type is copied recursively and the returned type refers to those copies in its component locations.

        Note: deepCopy provides two important properties in the returned copy:

        1. Structure preservation -- The exact structure of the original AnnotatedTypeMirror is preserved in the copy including all component types.
        2. Annotation preservation -- All of the annotations from the original AnnotatedTypeMirror and its components have been copied to the new type.
        If copyAnnotations is set to false, the second property, Annotation preservation, is removed. This is useful for cases in which the user may want to copy the structure of a type exactly but NOT its annotations.
        Specified by:
        deepCopy in class AnnotatedTypeMirror
        Returns:
        a deep copy
      • shallowCopy

        public AnnotatedTypeMirror.AnnotatedExecutableType shallowCopy​(boolean copyAnnotations)
        Description copied from class: AnnotatedTypeMirror
        Returns a shallow copy of this type. A shallow copy implies that each component type in the output copy refers to the same object as the object being copied.
        Specified by:
        shallowCopy in class AnnotatedTypeMirror
        Parameters:
        copyAnnotations - whether copy should have annotations, i.e. whether field annotations should be copied.
      • getElement

        public javax.lang.model.element.ExecutableElement getElement()
        Returns the element of this AnnotatedExecutableType.
        Returns:
        the element of this AnnotatedExecutableType
      • setElement

        public void setElement​(javax.lang.model.element.ExecutableElement elem)
        Sets the element of this AnnotatedExecutableType.
        Parameters:
        elem - the new element for this AnnotatedExecutableType