Package com.singularsys.jep.parser

# Class SimpleNode

java.lang.Object
com.singularsys.jep.parser.SimpleNode

All Implemented Interfaces:
  `Node`

Direct Known Subclasses:
  `ASTConstant`, `ASTFunNode`, `ASTStart`, `ASTVarNode`

public abstract class SimpleNode extends Object implements Node
The base class for all AST node classes. Contains basic tree node methods for traversal, adding and removing children and parent nodes, and other methods.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface com.singularsys.jep.parser.Node

  `Node.HookKey`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Node[]`
  `children`
  `protected final int`
  `id`
  `protected Node.HookKey[]`
  `keys`
  `protected Node`
  `parent`
  `protected Object[]`
  `vals`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SimpleNode(int i)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Iterator<Node>`
  `childIterator()`
  Returns an Iterator which iterates over the children of the Node.
  `Iterable<Node>`
  `children()`
  Returns an Iterable object which can be used in a for/in loop.
  `Object`
  `childrenAccept(ParserVisitor visitor, Object data)`
  Accept the visitor.
  `void`
  `dump(String prefix)`
  `Node[]`
  `getChildren()`
  Returns an array of the children of this node.
  `Object`
  `getHook(Node.HookKey key)`
  Get the value associated with a key.
  `int`
  `getId()`
  Returns the id of the node (for simpler identification).
  `Collection<Node.HookKey>`
  `hookKeys()`
  Get all the keys defined for this node.
  `Object`
  `jjtAccept(ParserVisitor visitor, Object data)`
  Accept the visitor.
  `void`
  `jjtAddChild(Node n, int i)`
  This method tells the node to add its argument to the node's list of children.
  `void`
  `jjtClose()`
  This method is called after all the child nodes have been added.
  `Node`
  `jjtGetChild(int i)`
  This method returns a child node.
  `int`
  `jjtGetNumChildren()`
  Return the number of children the node has.
  `Node`
  `jjtGetParent()`
  Gets the parent node
  `void`
  `jjtOpen()`
  This method is called after the node has been made the current node.
  `void`
  `jjtSetParent(Node n)`
  Sets the parent node.
  `Object`
  `removeHook(Node.HookKey key)`
  Remove the key
  `Object`
  `setHook(Node.HookKey key, Object value)`
  Sets the value associated with a key.
  `String`
  `toString(String prefix)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface com.singularsys.jep.parser.Node

  `getName, getOperator, getPFMC, getValue, getVar`

- ## Field Details

  - ### parent

    protected Node parent

  - ### children

    protected Node[] children

  - ### id

    protected final int id

  - ### keys

    protected Node.HookKey[] keys

  - ### vals

    protected Object[] vals

- ## Constructor Details

  - ### SimpleNode

    public SimpleNode(int i)

- ## Method Details

  - ### jjtOpen

    public void jjtOpen()
    Description copied from interface: `Node`
    This method is called after the node has been made the current node. It indicates that child nodes can now be added to it.
    Specified by:
      `jjtOpen` in interface `Node`

  - ### jjtClose

    public void jjtClose()
    Description copied from interface: `Node`
    This method is called after all the child nodes have been added.
    Specified by:
      `jjtClose` in interface `Node`

  - ### jjtSetParent

    public void jjtSetParent(Node n)
    Description copied from interface: `Node`
    Sets the parent node.
    Specified by:
      `jjtSetParent` in interface `Node`

  - ### jjtGetParent

    public Node jjtGetParent()
    Description copied from interface: `Node`
    Gets the parent node
    Specified by:
      `jjtGetParent` in interface `Node`

  - ### jjtAddChild

    public void jjtAddChild(Node n, int i)
    Description copied from interface: `Node`
    This method tells the node to add its argument to the node's list of children.
    Specified by:
      `jjtAddChild` in interface `Node`

  - ### jjtGetChild

    public Node jjtGetChild(int i)
    Description copied from interface: `Node`
    This method returns a child node. The children are numbered from zero, left to right.
    Specified by:
      `jjtGetChild` in interface `Node`

  - ### jjtGetNumChildren

    public int jjtGetNumChildren()
    Description copied from interface: `Node`
    Return the number of children the node has.
    Specified by:
      `jjtGetNumChildren` in interface `Node`
    Returns:
      the number of child nodes

  - ### jjtAccept

    public Object jjtAccept(ParserVisitor visitor, Object data) throws JepException
    Accept the visitor.
    Specified by:
      `jjtAccept` in interface `Node`
    Throws:
      `ParseException`
      `JepException`

  - ### childrenAccept

    public Object childrenAccept(ParserVisitor visitor, Object data) throws JepException
    Accept the visitor.
    Throws:
      `JepException`

  - ### toString

    public String toString(String prefix)

  - ### dump

    public void dump(String prefix)

  - ### getId

    public int getId()
    Returns the id of the node (for simpler identification).
    Specified by:
      `getId` in interface `Node`
    See Also:
      - `JccParserTreeConstants`

  - ### getHook

    public Object getHook(Node.HookKey key)
    Get the value associated with a key.
    Specified by:
      `getHook` in interface `Node`
    Parameters:
      `key` - the key to look up
    Returns:
      the value or null if no key exists

  - ### setHook

    public Object setHook(Node.HookKey key, Object value)
    Sets the value associated with a key.
    Specified by:
      `setHook` in interface `Node`
    Parameters:
      `key` - the key
      `value` - the value
    Returns:
      the old object associated with this key, may be null

  - ### hookKeys

    public Collection<Node.HookKey> hookKeys()
    Description copied from interface: `Node`
    Get all the keys defined for this node.
    Specified by:
      `hookKeys` in interface `Node`
    Returns:
      all the keys

  - ### removeHook

    public Object removeHook(Node.HookKey key)
    Description copied from interface: `Node`
    Remove the key
    Specified by:
      `removeHook` in interface `Node`
    Parameters:
      `key` -
    Returns:
      the object which was associated with the key

  - ### childIterator

    public Iterator<Node> childIterator()
    Returns an Iterator which iterates over the children of the Node. The remove method is unsupported.
    Specified by:
      `childIterator` in interface `Node`
    Returns:
      a new Iterator

  - ### children

    public Iterable<Node> children()
    Returns an Iterable object which can be used in a for/in loop.

         for(Node child:node.children()) {
          ...
         }

    Specified by:
      `children` in interface `Node`

  - ### getChildren

    public Node[] getChildren()
    Description copied from interface: `Node`
    Returns an array of the children of this node.
    Specified by:
      `getChildren` in interface `Node`
    Returns:
      an array of the children, or an empty array if there are no children