ptolemy.data.expr
Class NestedScope

java.lang.Object
  extended by ptolemy.data.expr.NestedScope
All Implemented Interfaces:
ParserScope

public class NestedScope
extends java.lang.Object
implements ParserScope

An implementation of ParserScope that consists of a list of nested scopes. A lookup starts from the first scope in the list, and proceeds through the list until a mapping is found.

Since:
Ptolemy II 2.1
Version:
$Id: NestedScope.java 38798 2005-07-08 20:00:01Z cxh $
Author:
Xiaojun Liu
Accepted Rating:
Red (liuxj)
Proposed Rating:
Red (liuxj)

Field Summary
private  java.util.List _scopeList
           
 
Constructor Summary
NestedScope(java.util.List scopeList)
          Construct a new scope that consists of the given list of scopes.
 
Method Summary
 Token get(java.lang.String name)
          Look up and return the value with the specified name in the scope.
 Type getType(java.lang.String name)
          Look up and return the type of the value with the specified name in the scope.
 InequalityTerm getTypeTerm(java.lang.String name)
          Look up and return the type term for the specified name in the scope.
 java.util.Set identifierSet()
          Return the list of identifiers within the scope.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_scopeList

private java.util.List _scopeList
Constructor Detail

NestedScope

public NestedScope(java.util.List scopeList)
Construct a new scope that consists of the given list of scopes.

Method Detail

get

public Token get(java.lang.String name)
          throws IllegalActionException
Look up and return the value with the specified name in the scope. Start from the first scope in the list supplied to the constructor. If a value is found, return the value, otherwise continue to look up through the list. Return null if no mapping is defined in any scope in the list.

Specified by:
get in interface ParserScope
Parameters:
name - The name of the variable to be looked up.
Returns:
The token associated with the given name in the scope.
Throws:
IllegalActionException - If a value in the scope exists with the given name, but cannot be evaluated.

getType

public Type getType(java.lang.String name)
             throws IllegalActionException
Look up and return the type of the value with the specified name in the scope. Return null if the name is not defined in this scope.

Specified by:
getType in interface ParserScope
Parameters:
name - The name of the variable to be looked up.
Returns:
The token associated with the given name in the scope.
Throws:
IllegalActionException - If a value in the scope exists with the given name, but cannot be evaluated.

getTypeTerm

public InequalityTerm getTypeTerm(java.lang.String name)
                           throws IllegalActionException
Look up and return the type term for the specified name in the scope. Return null if the name is not defined in this scope, or is a constant type.

Specified by:
getTypeTerm in interface ParserScope
Parameters:
name - The name of the variable to be looked up.
Returns:
The InequalityTerm associated with the given name in the scope.
Throws:
IllegalActionException - If a value in the scope exists with the given name, but cannot be evaluated.

identifierSet

public java.util.Set identifierSet()
                            throws IllegalActionException
Return the list of identifiers within the scope.

Specified by:
identifierSet in interface ParserScope
Returns:
The union of the identifierSets of the contained scopes.
Throws:
IllegalActionException - If the identifierSet() method of a contained scope throws it.