/* * Copyright (C) 2007 Sun Microsystems, Inc. All rights reserved. Use is * subject to license terms. * *//* Generated By:JJTree: Do not edit this line. SimpleNode.java */ package org.jdesktop.el.impl.parser; import org.jdesktop.el.ELException; import org.jdesktop.el.MethodInfo; import org.jdesktop.el.PropertyNotWritableException; import org.jdesktop.el.impl.lang.ELSupport; import org.jdesktop.el.impl.lang.EvaluationContext; import org.jdesktop.el.impl.util.MessageFactory; /** * @author Jacob Hookom [jacob@hookom.net] * @version $Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author: kchung $ */ public abstract class SimpleNode extends ELSupport implements Node { protected Node parent; protected Node[] children; protected int id; protected String image; public SimpleNode(int i) { id = i; } public void jjtOpen() { } public void jjtClose() { } public void jjtSetParent(Node n) { parent = n; } public Node jjtGetParent() { return parent; } public void jjtAddChild(Node n, int i) { if (children == null) { children = new Node[i + 1]; } else if (i >= children.length) { Node c[] = new Node[i + 1]; System.arraycopy(children, 0, c, 0, children.length); children = c; } children[i] = n; } public Node jjtGetChild(int i) { return children[i]; } public int jjtGetNumChildren() { return (children == null) ? 0 : children.length; } /* * You can override these two methods in subclasses of SimpleNode to * customize the way the node appears when the tree is dumped. If your * output uses more than one line you should override toString(String), * otherwise overriding toString() is probably all you need to do. */ public String toString() { if (this.image != null) { return ELParserTreeConstants.jjtNodeName[id] + "[" + this.image + "]"; } return ELParserTreeConstants.jjtNodeName[id]; } public String toString(String prefix) { return prefix + toString(); } /* * Override this method if you want to customize how the node dumps out its * children. */ public void dump(String prefix) { System.out.println(toString(prefix)); if (children != null) { for (int i = 0; i < children.length; ++i) { SimpleNode n = (SimpleNode) children[i]; if (n != null) { n.dump(prefix + " "); } } } } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public Class getType(EvaluationContext ctx) throws ELException { throw new UnsupportedOperationException(); } public Object getValue(EvaluationContext ctx) throws ELException { throw new UnsupportedOperationException(); } public boolean isReadOnly(EvaluationContext ctx) throws ELException { return true; } public void setValue(EvaluationContext ctx, Object value) throws ELException { throw new PropertyNotWritableException(MessageFactory.get("error.syntax.set")); } public void accept(NodeVisitor visitor) throws ELException { visitor.visit(this); if (this.children != null && this.children.length > 0) { for (int i = 0; i < this.children.length; i++) { this.children[i].accept(visitor); } } } public Object invoke(EvaluationContext ctx, Class[] paramTypes, Object[] paramValues) throws ELException { throw new UnsupportedOperationException(); } public MethodInfo getMethodInfo(EvaluationContext ctx, Class[] paramTypes) throws ELException { throw new UnsupportedOperationException(); } }