Interface Scope

All Known Implementing Classes:
AbstractScope

@Deprecated public interface Scope
Deprecated.
Since 7.19.0. For more info, see net.sourceforge.pmd.lang.symboltable.
A scope is a region within variables and other declarations are visible. Scopes can be nested and form a tree. This is expressed through "parent scopes". Each scope manages its own declarations.
See Also:
  • Method Details

    • getParent

      Scope getParent()
      Deprecated.
      Retrieves this scope's parent
    • setParent

      void setParent(Scope parent)
      Deprecated.
      Points this scope to its parent
    • getEnclosingScope

      <T extends Scope> T getEnclosingScope(Class<T> clazz)
      Deprecated.
      Helper method that goes up the parent scopes to find a scope of the specified type
      Parameters:
      clazz - the type of the Scope to search for
      Returns:
      the found scope of the specified type or null if no such scope was found.
    • getDeclarations

      Map<NameDeclaration,List<NameOccurrence>> getDeclarations()
      Deprecated.
      Gets all the declaration with the occurrences in this scope.
      Returns:
      map of declarations with occurrences.
    • getDeclarations

      <T extends NameDeclaration> Map<T,List<NameOccurrence>> getDeclarations(Class<T> clazz)
      Deprecated.
      Helper method to get only a specific type of name declarations. The return map elements have already been casted to the correct type. This method usually returns a subset of getDeclarations().
      Parameters:
      clazz - the type of name declarations to use
      Returns:
      map of declarations with occurrences.
    • contains

      boolean contains(NameOccurrence occ)
      Deprecated.
      Tests whether or not a NameOccurrence is directly contained in the scope. This means, whether the given NameOccurrence references a declaration, that has been declared within this scope. Note that this search is just for this scope - it doesn't go diving into any parent scopes.
    • addDeclaration

      void addDeclaration(NameDeclaration declaration)
      Deprecated.
      Adds a new declaration to this scope. Only after the declaration has been added, contains(NameOccurrence) and addNameOccurrence(NameOccurrence) can be used correctly.
      Parameters:
      declaration - the declaration to add
    • addNameOccurrence

      Set<NameDeclaration> addNameOccurrence(NameOccurrence occurrence)
      Deprecated.
      Adds a NameOccurrence to this scope - only call this after getting a true back from contains(NameOccurrence).
      Returns:
      the NameDeclarations that are referenced by the given NameOccurrence, if the NameOccurrence could be added. Otherwise an empty set is returned.