Class LocalVariable

java.lang.Object
org.eclipse.core.runtime.PlatformObject
All Implemented Interfaces:
IAnnotatable, IJavaElement, ILocalVariable, ISourceReference, org.eclipse.core.runtime.IAdaptable

public class LocalVariable extends SourceRefElement implements ILocalVariable
  • Field Details

    • NO_LOCAL_VARIABLES

      public static final ILocalVariable[] NO_LOCAL_VARIABLES
    • declarationSourceStart

      public int declarationSourceStart
    • declarationSourceEnd

      public int declarationSourceEnd
    • nameStart

      public int nameStart
    • nameEnd

      public int nameEnd
    • annotations

      public IAnnotation[] annotations
    • annotationsOnDimensions

      public IAnnotation[][] annotationsOnDimensions
  • Constructor Details

    • LocalVariable

      public LocalVariable(JavaElement parent, String name, int declarationSourceStart, int declarationSourceEnd, int nameStart, int nameEnd, String typeSignature, Annotation[] astAnnotations, int flags, boolean isParameter)
    • LocalVariable

      public LocalVariable(JavaElement parent, String name, int declarationSourceStart, int declarationSourceEnd, int nameStart, int nameEnd, String typeSignature, Annotation[] astAnnotations, int flags, boolean isParameter, Annotation[][] astAnnotationsOnDimensions)
  • Method Details

    • closing

      protected void closing(Object info)
      Description copied from class: SourceRefElement
      This element is being closed. Do any necessary cleanup.
      Overrides:
      closing in class SourceRefElement
    • createElementInfo

      protected Object createElementInfo()
      Description copied from class: SourceRefElement
      Returns a new element info for this element.
      Overrides:
      createElementInfo in class SourceRefElement
    • equals

      public boolean equals(Object o)
      Description copied from class: JavaElement
      Returns true if this handle represents the same Java element as the given handle. By default, two handles represent the same element if they are identical or if they represent the same type of element, have equal names, parents, and occurrence counts.

      If a subclass has other requirements for equality, this method must be overridden.

      Overrides:
      equals in class SourceRefElement
      See Also:
      Object.equals(java.lang.Object)
    • exists

      public boolean exists()
      Description copied from interface: IJavaElement
      Returns whether this Java element exists in the model.

      Java elements are handle objects that may or may not be backed by an actual element. Java elements that are backed by an actual element are said to "exist", and this method returns true. For Java elements that are not working copies, it is always the case that if the element exists, then its parent also exists (provided it has one) and includes the element as one of its children. It is therefore possible to navigated to any existing Java element from the root of the Java model along a chain of existing Java elements. On the other hand, working copies are said to exist until they are destroyed (with IWorkingCopy.destroy). Unlike regular Java elements, a working copy never shows up among the children of its parent element (which may or may not exist).

      Specified by:
      exists in interface IJavaElement
      Specified by:
      exists in interface ISourceReference
      Overrides:
      exists in class JavaElement
      Returns:
      true if this element exists in the Java model, and false if this element does not exist
      See Also:
      IJavaElement
    • generateInfos

      protected void generateInfos(Object info, HashMap newElements, org.eclipse.core.runtime.IProgressMonitor pm)
      Description copied from class: JavaElement
      Generates the element infos for this element, its ancestors (if they are not opened) and its children (if it is an Openable). Puts the newly created element info in the given map.
      Overrides:
      generateInfos in class SourceRefElement
    • getAnnotation

      public IAnnotation getAnnotation(String annotationName)
      Description copied from interface: IAnnotatable
      Returns the annotation with the given name declared on this element. This is a handle-only method. The annotation may or may not exist.
      Specified by:
      getAnnotation in interface IAnnotatable
      Overrides:
      getAnnotation in class SourceRefElement
      Parameters:
      annotationName - the given simple name
      Returns:
      the annotation with the given name declared on this element
    • getAnnotations

      public IAnnotation[] getAnnotations() throws JavaModelException
      Description copied from interface: IAnnotatable
      Returns the annotations for this element. Returns an empty array if this element has no annotations.
      Specified by:
      getAnnotations in interface IAnnotatable
      Overrides:
      getAnnotations in class SourceRefElement
      Returns:
      the annotations of this element, in the order declared in the source, or an empty array if none
      Throws:
      JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
    • getHandleFromMemento

      public IJavaElement getHandleFromMemento(String token, MementoTokenizer memento, WorkingCopyOwner owner)
      Overrides:
      getHandleFromMemento in class SourceRefElement
    • getHandleMemento

      protected void getHandleMemento(StringBuffer buff)
      Overrides:
      getHandleMemento in class SourceRefElement
    • getHandleMemento

      protected void getHandleMemento(StringBuffer buff, boolean memoizeParent)
    • getHandleMementoDelimiter

      protected char getHandleMementoDelimiter()
      Description copied from class: JavaElement
      Returns the char that marks the start of this handles contribution to a memento.
      Specified by:
      getHandleMementoDelimiter in class JavaElement
    • getCorrespondingResource

      public org.eclipse.core.resources.IResource getCorrespondingResource()
      Description copied from class: SourceRefElement
      Elements within compilation units and class files have no corresponding resource.
      Specified by:
      getCorrespondingResource in interface IJavaElement
      Overrides:
      getCorrespondingResource in class SourceRefElement
      Returns:
      the corresponding resource, or null if none
      See Also:
      IJavaElement
    • getDeclaringMember

      public IMember getDeclaringMember()
      Returns the declaring member of this local variable.

      This is a handle-only method.

      Specified by:
      getDeclaringMember in interface ILocalVariable
      Returns:
      the declaring member of this local variable
      Since:
      3.7
    • getElementName

      public String getElementName()
      Description copied from interface: IJavaElement
      Returns the name of this element. This is a handle-only method.
      Specified by:
      getElementName in interface IJavaElement
      Specified by:
      getElementName in interface ILocalVariable
      Overrides:
      getElementName in class JavaElement
      Returns:
      the element name
      See Also:
      IAdaptable
    • getElementType

      public int getElementType()
      Description copied from interface: IJavaElement
      Returns this element's kind encoded as an integer. This is a handle-only method.
      Specified by:
      getElementType in interface IJavaElement
      Returns:
      the kind of element; one of the constants declared in IJavaElement
      See Also:
      IJavaElement
    • getFlags

      public int getFlags()
      Returns the modifier flags for this local variable. The flags can be examined using class Flags.

      Note that only flags as indicated in the source are returned.

      Specified by:
      getFlags in interface ILocalVariable
      Returns:
      the modifier flags for this local variable
      Since:
      3.7
      See Also:
      Flags
    • getClassFile

      public ClassFile getClassFile()
      Overrides:
      getClassFile in class JavaElement
      See Also:
      IMember.getClassFile()
    • getNameRange

      public ISourceRange getNameRange()
      Returns the source range of this local variable's name.
      Specified by:
      getNameRange in interface ILocalVariable
      Specified by:
      getNameRange in interface ISourceReference
      Returns:
      the source range of this local variable's name
      Since:
      3.7
    • getPath

      public org.eclipse.core.runtime.IPath getPath()
      Description copied from interface: IJavaElement
      Returns the path to the innermost resource enclosing this element. If this element is not included in an external library, the path returned is the full, absolute path to the underlying resource, relative to the workbench. If this element is included in an external library, the path returned is the absolute path to the archive or to the folder in the file system. This is a handle-only method.
      Specified by:
      getPath in interface IJavaElement
      Overrides:
      getPath in class SourceRefElement
      Returns:
      the path to the innermost resource enclosing this element
    • resource

      public org.eclipse.core.resources.IResource resource()
      Overrides:
      resource in class SourceRefElement
    • getSource

      public String getSource() throws JavaModelException
      Description copied from interface: ISourceReference
      Returns the source code associated with this element. This extracts the substring from the source buffer containing this source element. This corresponds to the source range that would be returned by getSourceRange.

      For class files, this returns the source of the entire compilation unit associated with the class file (if there is one).

      Specified by:
      getSource in interface ISourceReference
      Overrides:
      getSource in class SourceRefElement
      Returns:
      the source code, or null if this element has no associated source code
      Throws:
      JavaModelException - if an exception occurs while accessing its corresponding resource
      See Also:
      ISourceReference
    • getSourceRange

      public ISourceRange getSourceRange() throws JavaModelException
      Returns the source range associated with this element.

      For class files, this returns the range of the entire compilation unit associated with the class file (if there is one).

      If this element has no associated source code, either null is returned, or a source range with a -1 offset and a 0 length. SourceRange.isAvailable(ISourceRange) can be used to detect that case.

      Specified by:
      getSourceRange in interface ISourceReference
      Overrides:
      getSourceRange in class SourceRefElement
      Returns:
      the source range, or either null or [-1, 0] if this element has no associated source code
      Throws:
      JavaModelException - if an exception occurs while accessing its corresponding resource
      Since:
      3.7
      See Also:
      ISourceReference
    • getTypeRoot

      public ITypeRoot getTypeRoot()
      Returns the Java type root in which this local variable is declared.

      This is a handle-only method.

      Specified by:
      getTypeRoot in interface ILocalVariable
      Returns:
      the Java type root in which this local variable is declared
      Since:
      3.7
    • getTypeSignature

      public String getTypeSignature()
      Description copied from interface: ILocalVariable
      Returns the type signature of this local variable.

      The type signature may be either unresolved (for source types) or resolved (for binary types), and either basic (for basic types) or rich (for parameterized types). See Signature for details.

      Specified by:
      getTypeSignature in interface ILocalVariable
      Returns:
      the type signature of this local variable.
      See Also:
      Signature
    • getUnderlyingResource

      public org.eclipse.core.resources.IResource getUnderlyingResource() throws JavaModelException
      Description copied from interface: IJavaElement
      Returns the smallest underlying resource that contains this element, or null if this element is not contained in a resource.
      Specified by:
      getUnderlyingResource in interface IJavaElement
      Overrides:
      getUnderlyingResource in class SourceRefElement
      Returns:
      the underlying resource, or null if none
      Throws:
      JavaModelException - if this element does not exist or if an exception occurs while accessing its underlying resource
      See Also:
      IJavaElement
    • hashCode

      public int hashCode()
      Description copied from class: JavaElement
      Returns the hash code for this Java element. By default, the hash code for an element is a combination of its name and parent's hash code. Elements with other requirements must override this method.
      Overrides:
      hashCode in class JavaElement
    • isParameter

      public boolean isParameter()
      Returns true if this local variable is a method parameter, false otherwise.
      Specified by:
      isParameter in interface ILocalVariable
      Returns:
      true if this local variable is a method parameter, false otherwise
      Since:
      3.7
    • isStructureKnown

      public boolean isStructureKnown() throws JavaModelException
      Description copied from interface: IJavaElement
      Returns whether the structure of this element is known. For example, for a compilation unit that has syntax errors, false is returned. If the structure of an element is unknown, navigations will return reasonable defaults. For example, getChildren for a compilation unit with syntax errors will return a collection of the children that could be parsed.

      Note: This does not imply anything about consistency with the underlying resource/buffer contents.

      Specified by:
      isStructureKnown in interface IJavaElement
      Overrides:
      isStructureKnown in class SourceRefElement
      Returns:
      true if the structure of this element is known
      Throws:
      JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource
      See Also:
      IJavaElement
    • getKey

      public String getKey(boolean forceOpen) throws JavaModelException
      Throws:
      JavaModelException
      See Also:
      Binding.computeUniqueKey()
    • toStringInfo

      protected void toStringInfo(int tab, StringBuffer buffer, Object info, boolean showResolvedInfo)
      Description copied from class: JavaElement
      Debugging purposes
      Overrides:
      toStringInfo in class JavaElement
      showResolvedInfo - TODO