org.globus.rsl
Class ListRslNode

java.lang.Object
  extended by org.globus.rsl.AbstractRslNode
      extended by org.globus.rsl.ListRslNode

public class ListRslNode
extends AbstractRslNode

This class represents an abstract RSL parse tree. It is composed of variable definitions (bindings), relations, and sub-specifications (sub nodes).


Field Summary
protected  java.util.List _bindings
           
protected  java.util.List _relations
           
 
Fields inherited from class org.globus.rsl.AbstractRslNode
_operator, _specifications, AND, MULTI, OR
 
Constructor Summary
ListRslNode()
           
ListRslNode(int operator)
           
 
Method Summary
 boolean add(Bindings bindings)
           
 boolean add(NameOpValue relation)
           
 AbstractRslNode evaluate(java.util.Map symbolTable)
          Evalutes the rsl tree against the specified symbol table.
 java.util.List getBindings()
          Returns the variable definitions.
 Bindings getBindings(java.lang.String attribute)
          Returns the variable definitions associated wit the given attribute.
 NameOpValue getParam(java.lang.String attribute)
          Returns the relation associated with the given attribute.
 java.util.List getRelations()
          Returns the relations.
 void mergeTo(AbstractRslNode dstNode)
           
 Bindings removeBindings(java.lang.String attribute)
          Removes a bindings list for the specified attribute.
 NameOpValue removeParam(java.lang.String attribute)
          Removes a relation for the specified attribute.
 void toRSL(java.lang.StringBuffer buf, boolean explicitConcat)
          Produces a RSL representation of node.
 
Methods inherited from class org.globus.rsl.AbstractRslNode
add, canonicalize, evaluate, getOperator, getOperatorAsString, getOperatorAsString, getSpecifications, merge, removeSpecification, setOperator, toRSL, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_relations

protected java.util.List _relations

_bindings

protected java.util.List _bindings
Constructor Detail

ListRslNode

public ListRslNode()

ListRslNode

public ListRslNode(int operator)
Method Detail

add

public boolean add(Bindings bindings)
Specified by:
add in class AbstractRslNode

add

public boolean add(NameOpValue relation)
Specified by:
add in class AbstractRslNode

getParam

public NameOpValue getParam(java.lang.String attribute)
Returns the relation associated with the given attribute.

Specified by:
getParam in class AbstractRslNode
Parameters:
attribute - the attribute of the relation.
Returns:
the relation for the attribute. Null, if not found.

getBindings

public Bindings getBindings(java.lang.String attribute)
Returns the variable definitions associated wit the given attribute.

Specified by:
getBindings in class AbstractRslNode
Parameters:
attribute - the attribute of the variable deinitions.
Returns:
the variable deinitions for the attribute. Null, if not found.

removeBindings

public Bindings removeBindings(java.lang.String attribute)
Removes a bindings list for the specified attribute.

Specified by:
removeBindings in class AbstractRslNode
Parameters:
attribute - the attribute name for the bindings.
Returns:
the bindings that were removed.

removeParam

public NameOpValue removeParam(java.lang.String attribute)
Removes a relation for the specified attribute.

Specified by:
removeParam in class AbstractRslNode
Parameters:
attribute - the attribute name for the relation to remove.
Returns:
the relation that was removed.

mergeTo

public void mergeTo(AbstractRslNode dstNode)
Overrides:
mergeTo in class AbstractRslNode

getRelations

public java.util.List getRelations()
Returns the relations.

Returns:
the list of relations.

getBindings

public java.util.List getBindings()
Returns the variable definitions.

Returns:
the map of variable definitions.

evaluate

public AbstractRslNode evaluate(java.util.Map symbolTable)
                         throws RslEvaluationException
Evalutes the rsl tree against the specified symbol table. All the variable definitions are first evaluated because they might update the symbol table. Then all the relations followed by the sub-specifications are evaluated.

Specified by:
evaluate in class AbstractRslNode
Parameters:
symbolTable - the symbol table to evalute variables against.
Returns:
the evaluated rsl tree.
Throws:
RslEvaluationException - If an error occured during rsl evaluation.

toRSL

public void toRSL(java.lang.StringBuffer buf,
                  boolean explicitConcat)
Produces a RSL representation of node.

Specified by:
toRSL in class AbstractRslNode
Parameters:
buf - buffer to add the RSL representation to.
explicitConcat - if true explicit concatination will be used in RSL strings.