com.waveset.expression
Class ExFunction.f_append

java.lang.Object
  extended bycom.waveset.expression.ExNode
      extended bycom.waveset.expression.ExFunction.ListMutator
          extended bycom.waveset.expression.ExFunction.f_append
All Implemented Interfaces:
com.sun.idm.debugger.common.Locatable
Direct Known Subclasses:
ExFunction.f_appendAll
Enclosing class:
ExFunction

public static class ExFunction.f_append
extends ExFunction.ListMutator

The function node for the <append> expression.

Append an element to a list.

If a name is specified, we destructively modify a list contained in the referenced variable, the first child is the value to add.

If there is no name specified, the first arg is a list, the second arg is the value to add, we create a new list.

Since the implementation of appendAll is almost identical, we'll implement that by subclassing, and letting it overload the isAppendAll method.


Field Summary
 
Fields inherited from class com.waveset.expression.ExNode
_bindingCount, _children, _decoration, _parent, code_id, trace
 
Constructor Summary
ExFunction.f_append()
           
 
Method Summary
protected  ExValue evalInternal(ExState state)
          Append an element to a list maintained in a variable.
 java.lang.String getFunctionName()
          Nodes representing functions must have a name.
protected  boolean isAppendAll()
          Overloaded in f_appendAll to return true.
 
Methods inherited from class com.waveset.expression.ExFunction.ListMutator
getName, parseXml, postProcess, setName, toXmlAttributes
 
Methods inherited from class com.waveset.expression.ExNode
addChild, addChildren, addCommonAttributes, beginTrace, clearOwner, endTrace, eval, evalChild, evalChildToObject, evalChildToString, evalToBoolean, evalToInt, evalToObject, evalToString, getBindingCount, getChild, getChildren, getDecoration, getHiddenVariable, getLocation, getOwner, getParent, isLiteral, parseCommonAttributes, removeChild, resolveFunction, resolveVariable, setBindingCount, setChildren, setDecoration, setEnvironment, setLocation, setOwner, setOwner, setParent, toXml, toXml, toXml, toXmlChildren
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExFunction.f_append

public ExFunction.f_append()
Method Detail

getFunctionName

public java.lang.String getFunctionName()
Description copied from class: ExNode
Nodes representing functions must have a name. This name is used in the formatting of default trace messages and the default XML rendering. If a node doesn't have a name for some reason, or needs more control over the trace messges and XML, they must overload beginTrace, endTrace, and toXml below.

Specified by:
getFunctionName in class ExNode

isAppendAll

protected boolean isAppendAll()
Overloaded in f_appendAll to return true.


evalInternal

protected ExValue evalInternal(ExState state)
                        throws WavesetException
Append an element to a list maintained in a variable. This works out to be almost identical to think about how to share.

Specified by:
evalInternal in class ExNode
Throws:
WavesetException