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
29
30 public abstract class NavPointLocal
31 extends InfoMessage
32 implements ILocalWorldObject
33
34 ,ILocalGBViewable
35 {
36
37
38
39
40
41
42 public NavPointLocal()
43 {
44 }
45
46
47
48
49 protected long SimTime;
50
51
52
53
54 @Override
55 public long getSimTime() {
56 return SimTime;
57 }
58
59
60
61
62 protected void setSimTime(long SimTime) {
63 this.SimTime = SimTime;
64 }
65
66
67 @Override
68 public abstract
69 NavPointLocal clone();
70
71 @Override
72 public Class getCompositeClass() {
73 return NavPoint.class;
74 }
75
76
77
78
79
80
81
82
83 public abstract UnrealId getId()
84 ;
85
86
87
88
89
90
91 public abstract boolean isVisible()
92 ;
93
94
95
96
97 public NavPointLocal getLocal() {
98 return this;
99 }
100 public ISharedWorldObject getShared() {
101 throw new UnsupportedOperationException("Could not return LOCAL");
102 }
103 public IStaticWorldObject getStatic() {
104 throw new UnsupportedOperationException("Could not return LOCAL");
105 }
106
107
108 @Override
109 public ILocalWorldObjectUpdatedEvent createDisappearEvent() {
110 return new ObjectDisappeared(this, getSimTime());
111 }
112
113 public static class ObjectDisappeared implements ILocalWorldObjectUpdatedEvent
114 {
115
116 public ObjectDisappeared(NavPointLocal obj, long time) {
117 this.obj = obj;
118 this.time = time;
119 }
120
121 private NavPointLocal obj;
122 private long time;
123
124 @Override
125 public WorldObjectId getId() {
126 return obj.getId();
127 }
128
129
130
131
132 @Override
133 public long getSimTime() {
134 return time;
135 }
136
137 @Override
138 public IWorldObjectUpdateResult<ILocalWorldObject> update(ILocalWorldObject obj)
139 {
140 if (obj == null) {
141 throw new PogamutException("Can't 'disappear' null!", this);
142 }
143 if (!(obj instanceof NavPointLocalImpl)) {
144 throw new PogamutException("Can't update different class than NavPointLocalImpl, got class " + obj.getClass().getSimpleName() + "!", this);
145 }
146 NavPointLocalImpl toUpdate = (NavPointLocalImpl)obj;
147 if (toUpdate.Visible) {
148 toUpdate.Visible = false;
149 return new IWorldObjectUpdateResult.WorldObjectUpdateResult(IWorldObjectUpdateResult.Result.UPDATED, obj);
150 } else {
151 return new IWorldObjectUpdateResult.WorldObjectUpdateResult(IWorldObjectUpdateResult.Result.SAME, obj);
152 }
153 }
154
155 }
156
157
158
159 public String toString() {
160 return
161 super.toString() + "[" +
162
163 "Id = " + String.valueOf(getId()
164 ) + " | " +
165
166 "Visible = " + String.valueOf(isVisible()
167 ) + " | " +
168
169 "]";
170 }
171
172
173 public String toHtmlString() {
174 return super.toString() + "[<br/>" +
175
176 "<b>Id</b> = " + String.valueOf(getId()
177 ) + " <br/> " +
178
179 "<b>Visible</b> = " + String.valueOf(isVisible()
180 ) + " <br/> " +
181
182 "<br/>]";
183 }
184
185
186
187
188
189
190
191
192
193
194 }
195