KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > javassist > compiler > ast > ASTree


1 /*
2  * Javassist, a Java-bytecode translator toolkit.
3  * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License. Alternatively, the contents of this file may be used under
8  * the terms of the GNU Lesser General Public License Version 2.1 or later.
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  */

15
16 package javassist.compiler.ast;
17
18 import java.io.Serializable JavaDoc;
19 import javassist.compiler.CompileError;
20
21 /**
22  * Abstract Syntax Tree. An ASTree object represents a node of
23  * a binary tree. If the node is a leaf node, both <code>getLeft()</code>
24  * and <code>getRight()</code> returns null.
25  */

26 public abstract class ASTree implements Serializable JavaDoc {
27     public ASTree getLeft() { return null; }
28
29     public ASTree getRight() { return null; }
30
31     public void setLeft(ASTree _left) {}
32
33     public void setRight(ASTree _right) {}
34
35     /**
36      * Is a method for the visitor pattern. It calls
37      * <code>atXXX()</code> on the given visitor, where
38      * <code>XXX</code> is the class name of the node object.
39      */

40     public abstract void accept(Visitor v) throws CompileError;
41
42     public String JavaDoc toString() {
43         StringBuffer JavaDoc sbuf = new StringBuffer JavaDoc();
44         sbuf.append('<');
45         sbuf.append(getTag());
46         sbuf.append('>');
47         return sbuf.toString();
48     }
49
50     /**
51      * Returns the type of this node. This method is used by
52      * <code>toString()</code>.
53      */

54     protected String JavaDoc getTag() {
55         String JavaDoc name = getClass().getName();
56         return name.substring(name.lastIndexOf('.') + 1);
57     }
58 }
59
Popular Tags