diff options
Diffstat (limited to 'src/main/java/io/devnulllabs/openjava/ptree/ObjectList.java')
-rw-r--r-- | src/main/java/io/devnulllabs/openjava/ptree/ObjectList.java | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/src/main/java/io/devnulllabs/openjava/ptree/ObjectList.java b/src/main/java/io/devnulllabs/openjava/ptree/ObjectList.java new file mode 100644 index 0000000..6e92d64 --- /dev/null +++ b/src/main/java/io/devnulllabs/openjava/ptree/ObjectList.java @@ -0,0 +1,129 @@ +/* + * ObjectList.java 1.0 + * + * @see io.devnulllabs.openjava.ptree.ParseTree + * @version last updated: 06/11/97 + * @author Michiaki Tatsubori + */ +package io.devnulllabs.openjava.ptree; + +import io.devnulllabs.openjava.ptree.util.ParseTreeVisitor; + +/** + * The <code>ObjectList</code> class presents for the node of parse tree + * of Objects + * + */ +public class ObjectList extends List { + public ObjectList() { + super(" "); + } + + public ObjectList(Object e0) { + super(" ", e0); + } + + public String toString() { + StringBuffer buf = new StringBuffer("OBJECTLIST {"); + if (!isEmpty()) + buf.append(get(0)); + for (int i = 1, len = size(); i < len; ++i) { + buf.append(","); + buf.append(get(i)); + } + buf.append("}"); + return buf.toString(); + } + + /** + * Gets the specified element at the index. + * + * @param n index + */ + public Object get(int n) { + return (Object) contents_elementAt(n); + } + + /** + * Adds the specified element after the list + * This causes side-effect. + * + * @param p Object to be inserted into the list + */ + public void add(Object p) { + contents_addElement(p); + } + + /** + * Adds the specified element after the list + * This causes side-effect. + * + * @param p Object to be inserted into the list + */ + public void set(int index, Object p) { + contents_setElementAt(p, index); + } + + /** + * Removes the element at the specified position in this Vector. + * shifts any subsequent elements to the left (subtracts one from their + * indices). Returns the element that was removed from the Vector. + * + * @exception ArrayIndexOutOfBoundsException index out of range (index + * < 0 || index >= size()). + * @param index the index of the element to removed. + * @since JDK1.2 + */ + public Object remove(int index) { + Object removed = (Object) contents_elementAt(index); + contents_removeElementAt(index); + return removed; + } + + /** + * Inserts the specified element into the list + * before the specified element of the list. + * This causes side-effect. + * + * @param p the element to be inserted into the list + * @param n number of the element before which insertion ocuurs + */ + public void insertElementAt(Object p, int n) { + contents_insertElementAt(p, n); + } + + /** + * Appends a list after this list. + * + * @param lst a list to be appended + */ + public void addAll(ObjectList lst) { + for (int i = 0, len = lst.size(); i < len; i++) { + contents_addElement(lst.get(i)); + } + } + + /** + * Returns a view of the portion of this List between fromIndex, + * inclusive, and toIndex, exclusive. The returned List is backed by this + * List, but changes in the returned List are not reflected in this List. + * <p> + * + * @param fromIndex low endpoint (inclusive) of the subList. + * @param toKey high endpoint (exclusive) of the subList. + * @return a view of the specified range within this List. + * @exception IndexOutOfBoundsException Illegal endpoint index value + * (fromIndex < 0 || toIndex > size || fromIndex > toIndex). + */ + public ObjectList subList(int from_index, int to_index) { + ObjectList result = new ObjectList(); + for (int i = from_index; i < to_index; ++i) { + result.add(this.get(i)); + } + return result; + } + + public void accept(ParseTreeVisitor v) throws ParseTreeException { + v.visit(this); + } +} |