Package org.zkoss.zel.impl.parser

## Class SimpleNode

- java.lang.Object
- - org.zkoss.zel.impl.lang.ELSupport
  - - org.zkoss.zel.impl.parser.SimpleNode

- All Implemented Interfaces:
    `Node`
  Direct Known Subclasses:
    `ArithmeticNode`, `AstAssign`, `AstBracketSuffix`, `AstChoice`, `AstCompositeExpression`, `AstConcatenation`, `AstDeferredExpression`, `AstDotSuffix`, `AstDynamicExpression`, `AstEmpty`, `AstFloatingPoint`, `AstFunction`, `AstIdentifier`, `AstInteger`, `AstLambdaExpression`, `AstLambdaParameters`, `AstListData`, `AstLiteralExpression`, `AstMapData`, `AstMapEntry`, `AstMethodParameters`, `AstNegative`, `AstNot`, `AstNull`, `AstSemicolon`, `AstSetData`, `AstString`, `AstValue`, `BooleanNode`

      public abstract class SimpleNode
      extends ELSupport
      implements Node

  Author:
    Jacob Hookom [jacob@hookom.net]

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Node[]` | `children` |
    `protected int` | `id` |
    `protected java.lang.String` | `image` |
    `protected Node` | `parent` |

    - ### Fields inherited from class org.zkoss.zel.impl.lang.ELSupport

      `COERCE_NULL_TO_NULL, COERCE_TO_ZERO`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SimpleNode​(int i)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `accept​(NodeVisitor visitor)` |
    `boolean` | `equals​(java.lang.Object obj)` |
    `java.lang.String` | `getImage()` |
    `MethodInfo` | `getMethodInfo​(EvaluationContext ctx, java.lang.Class<?>[] paramTypes)` |
    `java.lang.Class<?>` | `getType​(EvaluationContext ctx)` |
    `java.lang.Object` | `getValue​(EvaluationContext ctx)` |
    `ValueReference` | `getValueReference​(EvaluationContext ctx)` |
    `int` | `hashCode()` |
    `java.lang.Object` | `invoke​(EvaluationContext ctx, java.lang.Class<?>[] paramTypes, java.lang.Object[] paramValues)` |
    `boolean` | `isParametersProvided()` |
    `boolean` | `isReadOnly​(EvaluationContext ctx)` |
    `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.
    `int` | `jjtGetNumSiblings()` | Returns total siblings (including self) of this node; so at least return one.
    `Node` | `jjtGetParent()` |
    `void` | `jjtOpen()` | This method is called after the node has been made the current node.
    `void` | `jjtSetParent​(Node n)` | This pair of methods are used to inform the node of its parent.
    `void` | `setImage​(java.lang.String image)` |
    `void` | `setValue​(EvaluationContext ctx, java.lang.Object value)` |
    `java.lang.String` | `toString()` |

    - ### Methods inherited from class org.zkoss.zel.impl.lang.ELSupport

      `coerceToBoolean, coerceToDateTime, coerceToEnum, coerceToNumber, coerceToNumber, coerceToNumber, coerceToString, coerceToType, coerceToTypeForSetValue, compare, equals, isBigDecimalOp, isBigIntegerOp, isDateTimeType, isDoubleOp, isLongOp, isStringFloat`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### parent

          protected Node parent

    - #### children

          protected Node[] children

    - #### id

          protected final int id

    - #### image

          protected java.lang.String image

  - ### Constructor Detail

    - #### SimpleNode

          public SimpleNode​(int i)

  - ### Method Detail

    - #### 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`
      This pair of methods are used to inform the node of its parent.
      Specified by:
        `jjtSetParent` in interface `Node`

    - #### jjtGetParent

          public Node jjtGetParent()

      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`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### getImage

          public java.lang.String getImage()

      Specified by:
        `getImage` in interface `Node`

    - #### setImage

          public void setImage​(java.lang.String image)

    - #### getType

          public java.lang.Class<?> getType​(EvaluationContext ctx)
                                     throws ELException

      Specified by:
        `getType` in interface `Node`
      Throws:
        `ELException`

    - #### getValue

          public java.lang.Object getValue​(EvaluationContext ctx)
                                    throws ELException

      Specified by:
        `getValue` in interface `Node`
      Throws:
        `ELException`

    - #### isReadOnly

          public boolean isReadOnly​(EvaluationContext ctx)
                             throws ELException

      Specified by:
        `isReadOnly` in interface `Node`
      Throws:
        `ELException`

    - #### setValue

          public void setValue​(EvaluationContext ctx,
                               java.lang.Object value)
                        throws ELException

      Specified by:
        `setValue` in interface `Node`
      Throws:
        `ELException`

    - #### accept

          public void accept​(NodeVisitor visitor)
                      throws java.lang.Exception

      Specified by:
        `accept` in interface `Node`
      Throws:
        `java.lang.Exception`

    - #### invoke

          public java.lang.Object invoke​(EvaluationContext ctx,
                                         java.lang.Class<?>[] paramTypes,
                                         java.lang.Object[] paramValues)
                                  throws ELException

      Specified by:
        `invoke` in interface `Node`
      Throws:
        `ELException`

    - #### getMethodInfo

          public MethodInfo getMethodInfo​(EvaluationContext ctx,
                                          java.lang.Class<?>[] paramTypes)
                                   throws ELException

      Specified by:
        `getMethodInfo` in interface `Node`
      Throws:
        `ELException`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public boolean equals​(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### getValueReference

          public ValueReference getValueReference​(EvaluationContext ctx)

      Specified by:
        `getValueReference` in interface `Node`
      Since:
        EL 2.2

    - #### isParametersProvided

          public boolean isParametersProvided()

      Specified by:
        `isParametersProvided` in interface `Node`
      Since:
        EL 2.2

    - #### jjtGetNumSiblings

          public int jjtGetNumSiblings()

      Returns total siblings (including self) of this node; so at least return one.
      Since:
        ZEL 2.2.2