1 package cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages;
2
3
4 import java.util.*;import javax.vecmath.*;import cz.cuni.amis.pogamut.base.communication.messages.*;import cz.cuni.amis.pogamut.base.communication.worldview.*;import cz.cuni.amis.pogamut.base.communication.worldview.event.*;import cz.cuni.amis.pogamut.base.communication.worldview.object.*;import cz.cuni.amis.pogamut.multi.communication.worldview.object.*;import cz.cuni.amis.pogamut.base.communication.translator.event.*;import cz.cuni.amis.pogamut.multi.communication.translator.event.*;import cz.cuni.amis.pogamut.base3d.worldview.object.*;import cz.cuni.amis.pogamut.base3d.worldview.object.event.*;import cz.cuni.amis.pogamut.ut2004.communication.messages.*;import cz.cuni.amis.pogamut.ut2004.communication.worldview.objects.*;import cz.cuni.amis.pogamut.ut2004multi.communication.worldview.objects.*;import cz.cuni.amis.pogamut.ut2004.communication.translator.itemdescriptor.*;import cz.cuni.amis.pogamut.ut2004.communication.messages.ItemType.Category;import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;import cz.cuni.amis.utils.exception.*;import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldObjectUpdateResult.Result;import cz.cuni.amis.utils.SafeEquals;import cz.cuni.amis.pogamut.base.agent.*;import cz.cuni.amis.pogamut.multi.agent.*;import cz.cuni.amis.pogamut.multi.communication.worldview.property.*;import cz.cuni.amis.pogamut.ut2004multi.communication.worldview.property.*;import cz.cuni.amis.utils.token.*;import cz.cuni.amis.utils.*;
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 public class ItemLocalImpl
29 extends
30 ItemLocal
31 {
32
33
34
35
36
37
38 public ItemLocalImpl()
39 {
40 }
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 public ItemLocalImpl(
86 UnrealId Id, boolean Visible
87 ) {
88
89 this.Id = Id;
90
91 this.Visible = Visible;
92
93 }
94
95
96
97
98
99
100 public ItemLocalImpl(Item original) {
101
102 this.Id = original.getId()
103 ;
104
105 this.Visible = original.isVisible()
106 ;
107
108 this.SimTime = original.getSimTime();
109 }
110
111
112
113
114
115
116 public ItemLocalImpl(ItemLocalImpl original) {
117
118 this.Id = original.getId()
119 ;
120
121 this.Visible = original.isVisible()
122 ;
123
124 this.SimTime = original.getSimTime();
125 }
126
127
128
129
130
131
132 public ItemLocalImpl(ItemLocal original) {
133
134 this.Id = original.getId()
135 ;
136
137 this.Visible = original.isVisible()
138 ;
139
140 }
141
142
143 @Override
144 public void setSimTime(long SimTime) {
145 super.setSimTime(SimTime);
146 }
147
148 @Override
149 public
150 ItemLocalImpl clone() {
151 return new
152 ItemLocalImpl(this);
153 }
154
155
156
157
158
159
160
161
162
163 protected
164 UnrealId Id =
165 null;
166
167
168
169
170
171
172
173 public UnrealId getId()
174 {
175 return Id;
176 }
177
178
179
180
181
182
183
184 protected
185 boolean Visible =
186 false;
187
188
189
190
191
192
193 public boolean isVisible()
194 {
195 return Visible;
196 }
197
198
199
200
201
202 public ItemLocalImpl getLocal() {
203 return this;
204 }
205 public ISharedWorldObject getShared() {
206 throw new UnsupportedOperationException("Could not return LOCAL as SHARED");
207 }
208 public IStaticWorldObject getStatic() {
209 throw new UnsupportedOperationException("Could not return LOCAL as STATIC");
210 }
211
212 public static class ItemLocalUpdate
213 implements ILocalWorldObjectUpdatedEvent, IGBWorldObjectEvent
214 {
215 protected long time;
216
217 protected ItemLocal data = null;
218
219 public ItemLocalUpdate
220 (ItemLocal moverLocal, long time)
221 {
222 this.data = moverLocal;
223 this.time = time;
224 }
225
226 @Override
227 public IWorldObjectUpdateResult<ILocalWorldObject> update(
228 ILocalWorldObject object)
229 {
230 if ( object == null)
231 {
232 data = new ItemLocalImpl(data);
233 return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.CREATED, data);
234 }
235 if ( object instanceof ItemLocalImpl )
236 {
237 ItemLocalImpl toUpdate = (ItemLocalImpl)object;
238
239 boolean updated = false;
240
241
242
243 if (toUpdate.Visible != data.isVisible()
244 ) {
245 toUpdate.Visible=data.isVisible()
246 ;
247 updated = true;
248 }
249
250
251 data = toUpdate;
252
253 if ( updated )
254 {
255 toUpdate.SimTime = this.time;
256 return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.UPDATED, data);
257 }
258
259 return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.SAME, data);
260 }
261 throw new PogamutException("Unsupported object type for update. Expected ItemLocalImpl for object " + object.getId() +", not object of class " + object.getClass().getSimpleName() + ".", this);
262 }
263
264
265
266
267 @Override
268 public long getSimTime() {
269 return this.time;
270 }
271
272 @Override
273 public IWorldObject getObject() {
274 return data;
275 }
276
277 @Override
278 public WorldObjectId getId() {
279 return data.getId();
280 }
281
282 }
283
284
285 public String toString() {
286 return
287 super.toString() + "[" +
288
289 "Id = " + String.valueOf(getId()
290 ) + " | " +
291
292 "Visible = " + String.valueOf(isVisible()
293 ) + " | " +
294
295 "]";
296 }
297
298
299 public String toHtmlString() {
300 return super.toString() + "[<br/>" +
301
302 "<b>Id</b> = " + String.valueOf(getId()
303 ) + " <br/> " +
304
305 "<b>Visible</b> = " + String.valueOf(isVisible()
306 ) + " <br/> " +
307
308 "<br/>]";
309 }
310
311
312
313
314
315
316
317
318
319
320 }
321