00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00026 package cast.core;
00027
00028 import cast.cdl.WorkingMemoryEntry;
00029
00030
00036 public class CASTData<T extends Ice.Object> {
00037
00039 private final T m_data;
00040
00042 private final String m_type;
00043
00045 private final String m_id;
00046
00047
00052 private int m_version;
00053
00054 public CASTData(WorkingMemoryEntry entry, Class<T> _cls) {
00055 this(entry.id, entry.version, _cls.cast(entry.entry));
00056 }
00057
00066 public CASTData(String _id, T _data) {
00067 this(_id, 0, _data);
00068 }
00069
00078 public CASTData(String _id, int _version, T _data) {
00079 this(_id, CASTUtils.typeName(_data), _version, _data);
00080 }
00081
00090 public CASTData(String _id, String _type, int _version, T _data) {
00091 m_id = _id;
00092 m_type = _type;
00093 m_version = _version;
00094 m_data = _data;
00095 }
00096
00105 @Override
00106 public boolean equals(Object _obj) {
00107 if (_obj instanceof CASTData) {
00108 CASTData<?> ctd = (CASTData<?>) _obj;
00109 return ctd.m_version == m_version &&
00110 ctd.m_type.equals(m_type) && ctd.m_id.equals(m_id) && ctd.m_data.equals(m_data);
00111 } else {
00112 return false;
00113 }
00114 }
00115
00121 public final T getData() {
00122 return m_data;
00123 }
00124
00130 public final String getType() {
00131 return m_type;
00132 }
00133
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00158 @Override
00159 public String toString() {
00160 return m_id + ": [" + m_type + "[" + m_data + "]";
00161 }
00162
00163 public int getVersion() {
00164 return m_version;
00165 }
00166
00167 public void setVersion(int _versionNumber) {
00168 m_version = _versionNumber;
00169 }
00170
00178 public final String getID() {
00179 return m_id;
00180 }
00181
00182
00183
00184 }