View Javadoc

1   package cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages;
2    		
3    		// --- IMPORTS FROM /messages/settings/javasettings/javaimport BEGIN
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   		// --- IMPORTS FROM /messages/settings/javasettings/javaimport END
6   		
7   		
8   		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name='all'] BEGIN
9   				
10  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name='all'] END
11  		
12  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name=local]+classtype[@name=impl] BEGIN
13  		
14  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name=local]+classtype[@name=impl] END
15      
16   		/**
17           *  
18              				Implementation of the local part of the GameBots2004 message TES.  
19              			
20           *
21           *  <p></p><p></p>
22           *  Complete message documentation:               
23           *  
24  		Synchronous message. Contains the info about team score.
25  	
26           */
27   	public class TeamScoreLocalImpl 
28    						extends
29    						TeamScoreLocal
30  	    {
31   	
32      	
33      	
34      	/**
35      	 * Parameter-less contructor for the message.
36      	 */
37  		public TeamScoreLocalImpl()
38  		{
39  		}
40  	
41      	
42      	
43      	
44      	/**
45  		 * Creates new instance of the message TeamScore.
46  		 * 
47  		Synchronous message. Contains the info about team score.
48  	
49  		 * Corresponding GameBots message
50  		 *   (local part)
51  		 *   is
52  		 *   TES.
53  		 * 
54   	  	 * 
55  		 *   
56  		 *     @param Id Message identifier.
57  		 *   
58  		 * 
59  		 *   
60  		 * 
61  		 *   
62  		 * 
63  		 */
64  		public TeamScoreLocalImpl(
65  			UnrealId Id
66  		) {
67  			
68  					this.Id = Id;
69  				
70  		}
71      
72      	/**
73  		 * Cloning constructor from the full message.
74  		 *
75  		 * @param original
76  		 */
77  		public TeamScoreLocalImpl(TeamScore original) {		
78  			
79  					this.Id = original.getId()
80   	;
81  				
82  			this.SimTime = original.getSimTime();			
83  		}
84  		
85  		/**
86  		 * Cloning constructor from the full message.
87  		 *
88  		 * @param original
89  		 */
90  		public TeamScoreLocalImpl(TeamScoreLocalImpl original) {		
91  			
92  					this.Id = original.getId()
93   	;
94  				
95  			this.SimTime = original.getSimTime();
96  		}
97  		
98  			/**
99  			 * Cloning constructor from the message part.
100 			 *
101 			 * @param original
102 			 */
103 			public TeamScoreLocalImpl(TeamScoreLocal original) {
104 				
105 						this.Id = original.getId()
106  	;
107 					
108 			}
109 		
110    				
111    				@Override
112    				public void setSimTime(long SimTime) {
113 					super.setSimTime(SimTime);
114 				}
115    			
116 	    				@Override
117 	    				public 
118 	    				TeamScoreLocalImpl clone() {
119 	    					return new 
120 	    					TeamScoreLocalImpl(this);
121 	    				}
122 	    				
123 	    				
124     	
125 	    /**
126          * Message identifier. 
127          */
128         protected
129          UnrealId Id =
130        	null;
131 	
132  		/**
133          * Message identifier. 
134          */
135         public  UnrealId getId()
136  	 {
137 				    					return Id;
138 				    				}
139 				    			
140     	
141     	
142     	
143     	
144     	public TeamScoreLocalImpl getLocal() {
145 			return this;
146     	}
147 		public ISharedWorldObject getShared() {
148 		 	throw new UnsupportedOperationException("Could not return LOCAL as SHARED");
149 		}
150 		public IStaticWorldObject getStatic() {
151 		    throw new UnsupportedOperationException("Could not return LOCAL as STATIC");
152 		}
153  	
154 		public static class TeamScoreLocalUpdate
155      implements ILocalWorldObjectUpdatedEvent, IGBWorldObjectEvent
156 		{
157 			protected long time;
158 			
159 			protected TeamScoreLocal data = null; //contains object data for this update
160 			
161 			public TeamScoreLocalUpdate
162     (TeamScoreLocal moverLocal, long time)
163 			{
164 				this.data = moverLocal;
165 				this.time = time;
166 			}
167 			
168 			@Override
169 			public IWorldObjectUpdateResult<ILocalWorldObject> update(
170 					ILocalWorldObject object) 
171 			{
172 				if ( object == null)
173 				{
174 					data = new TeamScoreLocalImpl(data); //we always return Impl object
175 					return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.CREATED, data);
176 				}
177 				if ( object instanceof TeamScoreLocalImpl )
178 				{
179 					TeamScoreLocalImpl toUpdate = (TeamScoreLocalImpl)object;
180 					
181 					boolean updated = false;
182 					
183 					// UPDATING LOCAL PROPERTIES
184 					
185 					
186 					data = toUpdate; //the updating has finished
187 					
188 					if ( updated )
189 					{
190 						toUpdate.SimTime = this.time;
191 						return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.UPDATED, data);
192 					}
193 					
194 					return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.SAME, data);
195 				}
196 				throw new PogamutException("Unsupported object type for update. Expected TeamScoreLocalImpl for object " + object.getId() +", not object of class " + object.getClass().getSimpleName() + ".", this);
197 			}
198 	
199 			/**
200 			 * Simulation time in MILLI SECONDS !!!
201 			 */
202 			@Override
203 			public long getSimTime() {
204 				return this.time;
205 			}
206 	
207 			@Override
208 			public IWorldObject getObject() {
209 				return data;
210 			}
211 	
212 			@Override
213 			public WorldObjectId getId() {
214 				return data.getId();
215 			}
216 			
217 		}	
218  	
219  		
220  	    public String toString() {
221             return
222             	super.toString() + "[" +
223             	
224 		              			"Id = " + String.valueOf(getId()
225  	) + " | " + 
226 		              		
227 				"]";           		
228         }
229  	
230  		
231  		public String toHtmlString() {
232  			return super.toString() + "[<br/>" +
233             	
234 		              			"<b>Id</b> = " + String.valueOf(getId()
235  	) + " <br/> " + 
236 		              		
237 				"<br/>]";     
238 		}
239  	
240  		
241  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
242         	
243 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
244 		
245 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=local+classtype[@name=impl]) ---
246 	        
247 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=local+classtype[@name=impl]) ---        	            	
248  	
249 		}
250