001/* Generated By:JJTree: Do not edit this line. SimpleNode.java Version 7.0 */
002/* JavaCCOptions:MULTI=true,NODE_USES_PARSER=false,VISITOR=true,TRACK_TOKENS=false,NODE_PREFIX=AST,NODE_EXTENDS=,NODE_FACTORY=,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
003package jmri.jmris.simpleserver.parser;
004
005public
006class SimpleNode implements Node {
007
008  protected Node parent;
009  protected Node[] children;
010  protected int id;
011  protected Object value;
012  protected JmriServerParser parser;
013
014  public SimpleNode(int i) {
015    id = i;
016  }
017
018  public SimpleNode(JmriServerParser p, int i) {
019    this(i);
020    parser = p;
021  }
022
023  public void jjtOpen() {
024  }
025
026  public void jjtClose() {
027  }
028
029  public void jjtSetParent(Node n) { parent = n; }
030  public Node jjtGetParent() { return parent; }
031
032  public void jjtAddChild(Node n, int i) {
033    if (children == null) {
034      children = new Node[i + 1];
035    } else if (i >= children.length) {
036      Node c[] = new Node[i + 1];
037      System.arraycopy(children, 0, c, 0, children.length);
038      children = c;
039    }
040    children[i] = n;
041  }
042
043  public Node jjtGetChild(int i) {
044    return children[i];
045  }
046
047  public int jjtGetNumChildren() {
048    return (children == null) ? 0 : children.length;
049  }
050
051  public void jjtSetValue(Object value) { this.value = value; }
052  public Object jjtGetValue() { return value; }
053
054  /* Accept the visitor. **/
055  public Object jjtAccept(JmriServerParserVisitor visitor, Object data)
056{
057    return visitor.visit(this, data);
058  }
059
060  /* Accept the visitor. **/
061  public Object childrenAccept(JmriServerParserVisitor visitor, Object data)
062{
063    if (children != null) {
064      for (int i = 0; i < children.length; ++i) {
065        children[i].jjtAccept(visitor, data);
066      }
067    }
068    return data;
069  }
070
071  /* You can override these two methods in subclasses of SimpleNode to
072     customize the way the node appears when the tree is dumped.  If
073     your output uses more than one line you should override
074     toString(String), otherwise overriding toString() is probably all
075     you need to do. */
076
077  public String toString() {
078    return JmriServerParserTreeConstants.jjtNodeName[id];
079  }
080  public String toString(String prefix) { return prefix + toString(); }
081
082  /* Override this method if you want to customize how the node dumps
083     out its children. */
084
085  public void dump(String prefix) {
086    System.out.println(toString(prefix));
087    if (children != null) {
088      for (int i = 0; i < children.length; ++i) {
089        SimpleNode n = (SimpleNode)children[i];
090        if (n != null) {
091          n.dump(prefix + " ");
092        }
093      }
094    }
095  }
096
097  public int getId() {
098    return id;
099  }
100}
101
102/* JavaCC - OriginalChecksum=db52721cbf6b32af49b1f653a7b99336 (do not edit this line) */