ptolemy.actor.gt
Class GTParameter.Scope

java.lang.Object
  extended by ptolemy.actor.gt.GTParameter.Scope
All Implemented Interfaces:
ParserScope
Enclosing class:
GTParameter

public static class GTParameter.Scope
extends java.lang.Object
implements ParserScope

A scope to be used in GTParameter.Evaluator to resolve names with a pattern and a match result.

Since:
Ptolemy II 7.1
Version:
$Id: GTParameter.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Thomas Huining Feng
Accepted Rating:
Red (tfeng)
Proposed Rating:
Yellow (tfeng)

Field Summary
protected  MatchResult _matchResult
          The match result.
protected  Pattern _pattern
          The pattern.
protected  ParserScope _superscope
          The scope used to resolve a name if it cannot be resolved in this scope.
 
Constructor Summary
GTParameter.Scope(Pattern pattern, MatchResult matchResult, ParserScope superscope)
          Construct a scope.
 
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 a list of names corresponding to the identifiers defined by this scope.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_matchResult

protected MatchResult _matchResult
The match result.


_pattern

protected Pattern _pattern
The pattern.


_superscope

protected ParserScope _superscope
The scope used to resolve a name if it cannot be resolved in this scope.

Constructor Detail

GTParameter.Scope

public GTParameter.Scope(Pattern pattern,
                         MatchResult matchResult,
                         ParserScope superscope)
Construct a scope.

Parameters:
pattern - The pattern.
matchResult - The match result for the match between the pattern and a host model.
superscope - The scope to fall back on if a name cannot be resolved.
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. Return null if the name is not defined in this scope.

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 a list of names corresponding to the identifiers defined by this scope. If an identifier is returned in this list, then get() and getType() will return a value for the identifier. Note that generally speaking, this list is extremely expensive to compute, and users should avoid calling it. It is primarily used for debugging purposes.

Specified by:
identifierSet in interface ParserScope
Returns:
A list of names corresponding to the identifiers defined by this scope.
Throws:
IllegalActionException - If constructing the list causes it.