net.sourceforge.pmd.lang.symboltable
Class AbstractScope

java.lang.Object
  extended by net.sourceforge.pmd.lang.symboltable.AbstractScope
All Implemented Interfaces:
Scope

public abstract class AbstractScope
extends Object
implements Scope

Base class for any Scope. Provides useful default implementations.


Constructor Summary
AbstractScope()
           
 
Method Summary
 void addDeclaration(NameDeclaration declaration)
          Adds a new declaration to this scope.
 NameDeclaration addNameOccurrence(NameOccurrence occurrence)
          Adds a NameOccurrence to this scope - only call this after getting a true back from Scope.contains(NameOccurrence).
 boolean contains(NameOccurrence occ)
          Tests whether or not a NameOccurrence is directly contained in the scope.
 Map<NameDeclaration,List<NameOccurrence>> getDeclarations()
          Gets all the declaration with the occurrences in this scope.
<T extends NameDeclaration>
Map<T,List<NameOccurrence>>
getDeclarations(Class<T> clazz)
          Helper method to get only a specific type of name declarations.
<T extends Scope>
T
getEnclosingScope(Class<T> clazz)
          Helper method that goes up the parent scopes to find a scope of the specified type
 Scope getParent()
          Retrieves this scope's parent
 void setParent(Scope parent)
          Points this scope to its parent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractScope

public AbstractScope()
Method Detail

getParent

public Scope getParent()
Description copied from interface: Scope
Retrieves this scope's parent

Specified by:
getParent in interface Scope

setParent

public void setParent(Scope parent)
Description copied from interface: Scope
Points this scope to its parent

Specified by:
setParent in interface Scope

getDeclarations

public Map<NameDeclaration,List<NameOccurrence>> getDeclarations()
Description copied from interface: Scope
Gets all the declaration with the occurrences in this scope.

Specified by:
getDeclarations in interface Scope
Returns:
map of declarations with occurrences.

getDeclarations

public <T extends NameDeclaration> Map<T,List<NameOccurrence>> getDeclarations(Class<T> clazz)
Description copied from interface: Scope
Helper method to get only a specific type of name declarations. The return map elemens have already been casted to the correct type. This method usually returns a subset of Scope.getDeclarations().

Specified by:
getDeclarations in interface Scope
Parameters:
clazz - the type of name declarations to use
Returns:
map of declarations with occurrences.

contains

public boolean contains(NameOccurrence occ)
Description copied from interface: Scope
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.

Specified by:
contains in interface Scope

addDeclaration

public void addDeclaration(NameDeclaration declaration)
Description copied from interface: Scope
Adds a new declaration to this scope. Only after the declaration has been added, Scope.contains(NameOccurrence) and Scope.addNameOccurrence(NameOccurrence) can be used correctly.

Specified by:
addDeclaration in interface Scope
Parameters:
declaration - the declaration to add

getEnclosingScope

public <T extends Scope> T getEnclosingScope(Class<T> clazz)
Description copied from interface: Scope
Helper method that goes up the parent scopes to find a scope of the specified type

Specified by:
getEnclosingScope in interface Scope
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.

addNameOccurrence

public NameDeclaration addNameOccurrence(NameOccurrence occurrence)
Description copied from interface: Scope
Adds a NameOccurrence to this scope - only call this after getting a true back from Scope.contains(NameOccurrence).

Specified by:
addNameOccurrence in interface Scope
Returns:
the NameDeclaration that is references by the given NameOccurrence, if the NameOccurrence could be added. Otherwise null is returned.


Copyright © 2002-2015 InfoEther. All Rights Reserved.