net.sourceforge.pmd.lang.java.symboltable

## Class SourceFileScope

- java.lang.Object
- - net.sourceforge.pmd.lang.java.symboltable.AbstractScope
  - - net.sourceforge.pmd.lang.java.symboltable.SourceFileScope

All Implemented Interfaces:
  Scope

    public class SourceFileScope
    extends AbstractScope

### Field Summary

Fields
`protected Map<ClassNameDeclaration,List<NameOccurrence>>` `classNames`

### Constructor Summary

Constructors
Constructor and Description
`SourceFileScope()`
`SourceFileScope(String image)`

### Method Summary

Methods
`void` `addDeclaration(ClassNameDeclaration classDecl)` Add a class declaration to this scope
`void` `addDeclaration(MethodNameDeclaration decl)` Add a method declaration to this scope
`void` `addDeclaration(VariableNameDeclaration decl)` Add a variable declaration to this scope
`NameDeclaration` `addVariableNameOccurrence(NameOccurrence occ)` Adds a NameOccurrence to this scope - only call this after getting a true back from contains()
`protected NameDeclaration` `findVariableHere(NameOccurrence occ)`
`Map<ClassNameDeclaration,List<NameOccurrence>>` `getClassDeclarations()` Returns a Map (VariableNameDeclaration->List(NameOccurrence,NameOccurrence)) of declarations that exist at this scope
`ClassScope` `getEnclosingClassScope()` Goes searching up the tree for this scope's enclosing ClassScope This is handy if you're buried down in a LocalScope and need to hop up to the ClassScope to find a method name.
`MethodScope` `getEnclosingMethodScope()` Goes searching up the tree for this scope's enclosing MethodScope This is handy if you're buried down in a LocalScope and need to hop up to the MethodScope to find a method parameter.
`SourceFileScope` `getEnclosingSourceFileScope()` Goes searching up the tree for this scope's enclosing SourceFileScope This is handy if you're buried down in a LocalScope and need to hop up to the SourceFileScope to find a class name.
`String` `getPackageName()`
`Map<VariableNameDeclaration,List<NameOccurrence>>` `getVariableDeclarations()` Returns a Map (VariableNameDeclaration->List(NameOccurrence,NameOccurrence)) of declarations that exist at this scope
`String` `toString()`

### Methods inherited from class net.sourceforge.pmd.lang.java.symboltable.AbstractScope

`contains, getParent, glomNames, setParent`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### classNames

    protected Map<ClassNameDeclaration,List<NameOccurrence>> classNames

### Constructor Detail

#### SourceFileScope

    public SourceFileScope()

#### SourceFileScope

    public SourceFileScope(String image)

### Method Detail

#### getEnclosingClassScope

    public ClassScope getEnclosingClassScope()

Description copied from interface: `Scope`
Goes searching up the tree for this scope's enclosing ClassScope This is handy if you're buried down in a LocalScope and need to hop up to the ClassScope to find a method name.

Specified by:
  `getEnclosingClassScope` in interface `Scope`
Overrides:
  `getEnclosingClassScope` in class `AbstractScope`

#### getEnclosingMethodScope

    public MethodScope getEnclosingMethodScope()

Description copied from interface: `Scope`
Goes searching up the tree for this scope's enclosing MethodScope This is handy if you're buried down in a LocalScope and need to hop up to the MethodScope to find a method parameter.

Specified by:
  `getEnclosingMethodScope` in interface `Scope`
Overrides:
  `getEnclosingMethodScope` in class `AbstractScope`

#### getPackageName

    public String getPackageName()

#### getEnclosingSourceFileScope

    public SourceFileScope getEnclosingSourceFileScope()

Description copied from interface: `Scope`
Goes searching up the tree for this scope's enclosing SourceFileScope This is handy if you're buried down in a LocalScope and need to hop up to the SourceFileScope to find a class name.

Specified by:
  `getEnclosingSourceFileScope` in interface `Scope`
Overrides:
  `getEnclosingSourceFileScope` in class `AbstractScope`

#### addDeclaration

    public void addDeclaration(ClassNameDeclaration classDecl)

Description copied from interface: `Scope`
Add a class declaration to this scope

Specified by:
  `addDeclaration` in interface `Scope`
Overrides:
  `addDeclaration` in class `AbstractScope`

#### addDeclaration

    public void addDeclaration(MethodNameDeclaration decl)

Description copied from interface: `Scope`
Add a method declaration to this scope

Specified by:
  `addDeclaration` in interface `Scope`
Overrides:
  `addDeclaration` in class `AbstractScope`

#### addDeclaration

    public void addDeclaration(VariableNameDeclaration decl)

Description copied from interface: `Scope`
Add a variable declaration to this scope

#### getClassDeclarations

    public Map<ClassNameDeclaration,List<NameOccurrence>> getClassDeclarations()

Description copied from interface: `Scope`
Returns a Map (VariableNameDeclaration->List(NameOccurrence,NameOccurrence)) of declarations that exist at this scope

Specified by:
  `getClassDeclarations` in interface `Scope`
Overrides:
  `getClassDeclarations` in class `AbstractScope`

#### getVariableDeclarations

    public Map<VariableNameDeclaration,List<NameOccurrence>> getVariableDeclarations()

Description copied from interface: `Scope`
Returns a Map (VariableNameDeclaration->List(NameOccurrence,NameOccurrence)) of declarations that exist at this scope

#### addVariableNameOccurrence

    public NameDeclaration addVariableNameOccurrence(NameOccurrence occ)

Description copied from interface: `Scope`
Adds a NameOccurrence to this scope - only call this after getting a true back from contains()

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### findVariableHere

    protected NameDeclaration findVariableHere(NameOccurrence occ)

Specified by:
  `findVariableHere` in class `AbstractScope`