Skip to content

Package: Node

Node

Coverage

1: /*
2: * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
3: *
4: * This program and the accompanying materials are made available under the
5: * terms of the Eclipse Public License v. 2.0, which is available at
6: * http://www.eclipse.org/legal/epl-2.0.
7: *
8: * This Source Code may also be made available under the following Secondary
9: * Licenses when the conditions for such availability set forth in the
10: * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
11: * version 2 with the GNU Classpath Exception, which is available at
12: * https://www.gnu.org/software/classpath/license.html.
13: *
14: * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15: */
16:
17: package com.sun.el.parser;
18:
19: import jakarta.el.ELException;
20: import jakarta.el.MethodInfo;
21: import jakarta.el.ValueReference;
22:
23: import com.sun.el.lang.EvaluationContext;
24:
25: /* All AST nodes must implement this interface. It provides basic
26: machinery for constructing the parent and child relationships
27: between nodes. */
28:
29: /**
30: * @author Jacob Hookom [jacob@hookom.net]
31: * @version $Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author: kchung $
32: */
33: public interface Node {
34:
35: /**
36: * This method is called after the node has been made the current node. It indicates that child nodes can now be added
37: * to it.
38: */
39: void jjtOpen();
40:
41: /**
42: * This method is called after all the child nodes have been added.
43: */
44: void jjtClose();
45:
46: /**
47: * This pair of methods are used to inform the node of its parent.
48: */
49: void jjtSetParent(Node n);
50:
51: Node jjtGetParent();
52:
53: /**
54: * This method tells the node to add its argument to the node's list of children.
55: */
56: void jjtAddChild(Node n, int i);
57:
58: /**
59: * This method returns a child node. The children are numbered from zero, left to right.
60: */
61: Node jjtGetChild(int i);
62:
63: /** Return the number of children the node has. */
64: int jjtGetNumChildren();
65:
66: String getImage();
67:
68: Object getValue(EvaluationContext ctx) throws ELException;
69:
70: void setValue(EvaluationContext ctx, Object value) throws ELException;
71:
72: Class getType(EvaluationContext ctx) throws ELException;
73:
74: ValueReference getValueReference(EvaluationContext ctx) throws ELException;
75:
76: boolean isReadOnly(EvaluationContext ctx) throws ELException;
77:
78: void accept(NodeVisitor visitor) throws ELException;
79:
80: MethodInfo getMethodInfo(EvaluationContext ctx, Class[] paramTypes) throws ELException;
81:
82: Object invoke(EvaluationContext ctx, Class[] paramTypes, Object[] paramValues) throws ELException;
83:
84: @Override
85: boolean equals(Object n);
86:
87: @Override
88: int hashCode();
89:
90: boolean isParametersProvided();
91: }