Class VariableScope

  • All Implemented Interfaces:
    ParserScope

    public class VariableScope
    extends ModelScope
    The parser scope that resolves names as attributes of a given container and those of a superscope. To resolve a name, it first tries to find an attribute belonging to the container given to its constructor. If not found, it passes the name resolution request to the superscope, if given.
    Since:
    Ptolemy II 8.0
    Version:
    $Id$
    Author:
    Thomas Huining Feng
    Pt.AcceptedRating:
    Red (tfeng)
    Pt.ProposedRating:
    Yellow (tfeng)
    • Constructor Detail

      • VariableScope

        public VariableScope​(NamedObj container)
        Construct a scope for the given container without a superscope.
        Parameters:
        container - The container in which attributes are looked up.
      • VariableScope

        public VariableScope​(NamedObj container,
                             ParserScope superScope)
        Construct a scope for the given container with a superscope.
        Parameters:
        container - The container in which attributes are looked up.
        superScope - If not null, the scope to search if no attribute of a given name can be found in the container.
    • 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.
        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.
        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.
        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.
        Returns:
        A list of names corresponding to the identifiers defined by this scope.
        Throws:
        IllegalActionException - If constructing the list causes it.