
cb.petal.PetalNodeList Maven / Gradle / Ivy
/**
* Copyright (c) 2001 Markus Dahm
* Copyright (C) 2015-2018 BITPlan GmbH http://www.bitplan.com
*
* This source is part of
* https://github.com/BITPlan/CrazyBeans
* and the license as outlined there applies
*/
package cb.petal;
import java.util.*;
/**
* Lists (list foo ...) containing other petal nodes.
*
* @version $Id: List.java,v 1.11 2001/07/09 07:48:52 dahm Exp $
* @author M. Dahm
*/
public class PetalNodeList implements PetalNode {
static final long serialVersionUID = -9142706599368764080L;
private ArrayList list = new ArrayList();
private String name;
/**
* create a list with the given name
* @param name
*/
public PetalNodeList(String name) {
setName(name);
}
@SuppressWarnings("unchecked")
public java.lang.Object clone() {
PetalNodeList list = new PetalNodeList(name);
list.list = (ArrayList)this.list.clone();
return list;
}
public boolean equals(java.lang.Object o) {
return (o instanceof PetalNodeList) && ((PetalNodeList)o).name.equals(this.name) &&
((PetalNodeList)o).list.equals(this.list);
}
public void setName(String n) {
if(n != null)
n = n.intern();
name = n;
}
public final String getName() { return name; }
public final String getKind() { return "list"; }
public final int getChildCount() { return list.size(); }
public final PetalNode get(int i) {
return (PetalNode)list.get(i);
}
public final ArrayList get() {
return this.list;
}
public final void set(int i, PetalNode node) {
list.set(i, node);
}
public final void add(PetalNode value) {
list.add(value);
}
public final void remove(PetalNode value) {
list.remove(value);
}
public final int size() {
return list.size();
}
public final java.util.List getElements() {
return (ArrayList)list.clone();
}
public final String toString() {
StringBuffer buf = new StringBuffer("(list " + name + "\n");
for(Iterator i = list.iterator(); i.hasNext(); ) {
buf.append(i.next());
if(i.hasNext())
buf.append("\n");
}
buf.append(")\n");
return buf.toString();
}
public void accept(Visitor v) {
v.visit(this);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy