001 package org.mesopotamia; 002 003 import java.util.HashMap; 004 import java.util.Map; 005 006 import biz.hammurapi.util.VisitableBase; 007 008 /** 009 * Contains only data and no references to other objects. 010 * @author Pavel Vlasov 011 * 012 */ 013 public class NodeData extends VisitableBase implements Cloneable { 014 015 // private StackTraceElement[] sf = new Exception().getStackTrace(); // For testing 016 017 private int column; 018 private int line; 019 private String text; 020 private int type; 021 private int leftColumn; 022 private int id; 023 private Integer firstToken; 024 private Integer lastToken; 025 private Integer token; 026 private int sourceUnitId; 027 private int position; 028 private int sameTypeIndex; 029 030 private Map references = new HashMap(); 031 032 public NodeData() { 033 // default constructor 034 } 035 036 @Override 037 public Object clone() throws CloneNotSupportedException { 038 NodeData ret = (NodeData) super.clone(); 039 ret.setColumn(getColumn()); 040 ret.setLine(getLine()); 041 ret.setText(getText()); 042 ret.setType(getType()); 043 ret.setLeftColumn(getLeftColumn()); 044 ret.setId(getId()); 045 ret.setFirstToken(getFirstToken()); 046 ret.setLastToken(getLastToken()); 047 ret.setToken(getToken()); 048 ret.setSourceUnitId(getSourceUnitId()); 049 ret.setPosition(getPosition()); 050 ret.setSameTypeIndex(getSameTypeIndex()); 051 052 return ret; 053 } 054 055 056 public int getSourceUnitId() { 057 return sourceUnitId; 058 } 059 060 public void setSourceUnitId(int sourceUnitId) { 061 this.sourceUnitId = sourceUnitId; 062 } 063 064 public int getColumn() { 065 return column; 066 } 067 068 public void setColumn(int column) { 069 this.column = column; 070 } 071 072 public Integer getFirstToken() { 073 return firstToken; 074 } 075 076 public void setFirstToken(Integer firstToken) { 077 this.firstToken = firstToken; 078 } 079 080 public int getId() { 081 return id; 082 } 083 084 public void setId(int id) { 085 this.id = id; 086 } 087 088 public Integer getLastToken() { 089 return lastToken; 090 } 091 092 public void setLastToken(Integer lastToken) { 093 this.lastToken = lastToken; 094 } 095 096 public int getLeftColumn() { 097 return leftColumn; 098 } 099 100 public void setLeftColumn(int leftColumn) { 101 this.leftColumn = leftColumn; 102 } 103 104 public int getLine() { 105 return line; 106 } 107 108 public void setLine(int line) { 109 this.line = line; 110 } 111 112 public String getText() { 113 return text; 114 } 115 116 public void setText(String text) { 117 this.text = text; 118 } 119 120 public Integer getToken() { 121 return token; 122 } 123 124 public void setToken(Integer token) { 125 this.token = token; 126 } 127 128 public int getType() { 129 return type; 130 } 131 132 public void setType(int type) { 133 this.type = type; 134 } 135 136 public int getPosition() { 137 return position; 138 } 139 140 public void setPosition(int position) { 141 this.position = position; 142 } 143 144 public void setSameTypeIndex(int sameTypeIndex) { 145 this.sameTypeIndex = sameTypeIndex; 146 } 147 148 public int getSameTypeIndex() { 149 return sameTypeIndex; 150 } 151 152 public String toString() { 153 return "["+getClass().getName()+"] "+sourceUnitId+"/"+id+" "+line+":"+column; 154 } 155 156 /** 157 * Map of reference name to reference value, e.g. type -> 132. 158 * @return 159 */ 160 public Map getReferences() { 161 return references; 162 } 163 }