Class AnnotatedTypeMirror.AnnotatedExecutableType

java.lang.Object
org.checkerframework.framework.type.AnnotatedTypeMirror
org.checkerframework.framework.type.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 Details

    • 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 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(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 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
    • shallowCopyReturnType

      public void shallowCopyReturnType()
      Replaces the return type by a shallow copy of itself.
    • 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

      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 List<AnnotatedTypeMirror> getThrownTypes()
      Returns the thrown types of this executable type.
      Returns:
      the thrown types of this executable type
    • getTypeVariables

      public 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
    • deepCopy

      Description copied from class: AnnotatedTypeMirror
      Returns a deep copy of this type with annotations.

      Each subclass implements this method with the subclass return type. The method body must always be a call to deepCopy(true).

      Specified by:
      deepCopy in interface org.plumelib.util.DeepCopyable<AnnotatedTypeMirror>
      Specified by:
      deepCopy in class AnnotatedTypeMirror
      Returns:
      a deep copy of this type with annotations
      See Also:
    • 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.
    • shallowCopy

      Description copied from class: AnnotatedTypeMirror
      Returns a shallow copy of this type with annotations.

      Each subclass implements this method with the subclass return type. The method body must always be a call to shallowCopy(true).

      Specified by:
      shallowCopy in class AnnotatedTypeMirror
      Returns:
      a shallow copy of this type with annotations
      See Also:
    • getElement

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

      public void setElement(ExecutableElement elem)
      Sets the element of this AnnotatedExecutableType.
      Parameters:
      elem - the new element for this AnnotatedExecutableType
    • getErased

      Description copied from class: AnnotatedTypeMirror
      Returns the erasure type of this type, according to JLS specifications.
      Overrides:
      getErased in class AnnotatedTypeMirror
      Returns:
      the erasure of this AnnotatedTypeMirror, this is always a copy even if the erasure and the original type are equivalent
      See Also: