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 NFO.  
19              			
20           *
21           *  <p></p><p></p>
22           *  Complete message documentation:               
23           *  
24  		Asynchronous message. Sent as response to READY command.
25  		Information about the game. What type of game is it going to be,
26  		number of teams, maximum size of teams etc.
27  	
28           */
29   	public class GameInfoLocalImpl 
30    						extends
31    						GameInfoLocal
32  	    {
33   	
34      	
35      	
36      	/**
37      	 * Parameter-less contructor for the message.
38      	 */
39  		public GameInfoLocalImpl()
40  		{
41  		}
42  	
43      	/**
44  		 * Cloning constructor from the full message.
45  		 *
46  		 * @param original
47  		 */
48  		public GameInfoLocalImpl(GameInfo original) {		
49  			
50  			this.SimTime = original.getSimTime();			
51  		}
52  		
53  		/**
54  		 * Cloning constructor from the full message.
55  		 *
56  		 * @param original
57  		 */
58  		public GameInfoLocalImpl(GameInfoLocalImpl original) {		
59  			
60  			this.SimTime = original.getSimTime();
61  		}
62  		
63  			/**
64  			 * Cloning constructor from the message part.
65  			 *
66  			 * @param original
67  			 */
68  			public GameInfoLocalImpl(GameInfoLocal original) {
69  				
70  			}
71  		
72  						
73  						public UnrealId getId() {						
74  							return cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.GameInfo.GameInfoId;
75  						}
76  					
77     				
78     				@Override
79     				public void setSimTime(long SimTime) {
80  					super.setSimTime(SimTime);
81  				}
82     			
83  	    				@Override
84  	    				public 
85  	    				GameInfoLocalImpl clone() {
86  	    					return new 
87  	    					GameInfoLocalImpl(this);
88  	    				}
89  	    				
90  	    				
91      	
92      	
93      	
94      	
95      	public GameInfoLocalImpl getLocal() {
96  			return this;
97      	}
98  		public ISharedWorldObject getShared() {
99  		 	throw new UnsupportedOperationException("Could not return LOCAL as SHARED");
100 		}
101 		public IStaticWorldObject getStatic() {
102 		    throw new UnsupportedOperationException("Could not return LOCAL as STATIC");
103 		}
104  	
105 		public static class GameInfoLocalUpdate
106      implements ILocalWorldObjectUpdatedEvent, IGBWorldObjectEvent
107 		{
108 			protected long time;
109 			
110 			protected GameInfoLocal data = null; //contains object data for this update
111 			
112 			public GameInfoLocalUpdate
113     (GameInfoLocal moverLocal, long time)
114 			{
115 				this.data = moverLocal;
116 				this.time = time;
117 			}
118 			
119 			@Override
120 			public IWorldObjectUpdateResult<ILocalWorldObject> update(
121 					ILocalWorldObject object) 
122 			{
123 				if ( object == null)
124 				{
125 					data = new GameInfoLocalImpl(data); //we always return Impl object
126 					return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.CREATED, data);
127 				}
128 				if ( object instanceof GameInfoLocalImpl )
129 				{
130 					GameInfoLocalImpl toUpdate = (GameInfoLocalImpl)object;
131 					
132 					boolean updated = false;
133 					
134 					// UPDATING LOCAL PROPERTIES
135 					
136 					
137 					data = toUpdate; //the updating has finished
138 					
139 					if ( updated )
140 					{
141 						toUpdate.SimTime = this.time;
142 						return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.UPDATED, data);
143 					}
144 					
145 					return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.SAME, data);
146 				}
147 				throw new PogamutException("Unsupported object type for update. Expected GameInfoLocalImpl for object " + object.getId() +", not object of class " + object.getClass().getSimpleName() + ".", this);
148 			}
149 	
150 			/**
151 			 * Simulation time in MILLI SECONDS !!!
152 			 */
153 			@Override
154 			public long getSimTime() {
155 				return this.time;
156 			}
157 	
158 			@Override
159 			public IWorldObject getObject() {
160 				return data;
161 			}
162 	
163 			@Override
164 			public WorldObjectId getId() {
165 				return data.getId();
166 			}
167 			
168 		}	
169  	
170  		
171  	    public String toString() {
172             return
173             	super.toString() + "[" +
174             	
175 				"]";           		
176         }
177  	
178  		
179  		public String toHtmlString() {
180  			return super.toString() + "[<br/>" +
181             	
182 				"<br/>]";     
183 		}
184  	
185  		
186  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
187         	
188 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
189 		
190 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=local+classtype[@name=impl]) ---
191 	        
192 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=local+classtype[@name=impl]) ---        	            	
193  	
194 		}
195