001 package org.mesopotamia; 002 003 import java.util.ArrayList; 004 import java.util.List; 005 006 import biz.hammurapi.util.CollectionVisitable; 007 import biz.hammurapi.util.Visitor; 008 009 /** 010 * This class represents "raw" syntax tree node. 011 * @author Pavel Vlasov 012 */ 013 public class MesopotamiaNode extends NodeData { 014 015 private String typeName; 016 017 public MesopotamiaNode(String typeName, MesopotamiaNode parent) { 018 this.parent = parent; 019 this.typeName = typeName; 020 } 021 022 private MesopotamiaNode parent; 023 private List<MesopotamiaNode> children = new ArrayList<MesopotamiaNode>(); 024 025 public List<MesopotamiaNode> getChildren() { 026 return children; 027 } 028 029 public void setChildren(List<MesopotamiaNode> children) { 030 this.children = children; 031 } 032 033 public MesopotamiaNode getParent() { 034 return parent; 035 } 036 037 @Override 038 public Object clone() throws CloneNotSupportedException { 039 MesopotamiaNode ret = (MesopotamiaNode) super.clone(); 040 ret.typeName = getTypeName(); 041 return ret; 042 } 043 044 protected void acceptChildren(Visitor visitor) { 045 new CollectionVisitable(children, false).accept(visitor); 046 } 047 048 public String getTypeName() { 049 return typeName; 050 } 051 052 public String toString() { 053 return getTypeName()+" "+getText(); 054 } 055 056 }