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=static]+classtype[@name=abstract] BEGIN
13  		
14  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name=static]+classtype[@name=abstract] END
15      
16   		/**
17           *  
18              				Abstract definition of the static part of the GameBots2004 message VEH.  
19              			
20           *
21           *  <p></p><p></p>
22           *  Complete message documentation:               
23           *  
24  		Synchronous message. Holds vehicles we see. Id for vehicles doesn't work, so 
25  		this message is without Id. We can join vehicles by ENTER command if we are 
26  		close enough - ussually 100 ut units or less. Note: Vehicle support is 
27  		in aplha testing right now.
28  	
29           */
30   	public abstract class VehicleStatic 
31    						extends InfoMessage
32    						implements IStaticWorldObject
33    						
34  	    {
35   	
36      	
37      	
38      	/**
39      	 * Parameter-less contructor for the message.
40      	 */
41  		public VehicleStatic()
42  		{
43  		}
44  		
45  				// abstract definition of the static-part of the message, no more constructors is needed
46  			
47  	   		
48  			protected long SimTime;
49  				
50  			/**
51  			 * Simulation time in MILLI SECONDS !!!
52  			 */	
53  			@Override
54  			public long getSimTime() {
55  				return SimTime;
56  			}
57  						
58  			/**
59  			 * Used by Yylex to slip correct time of the object or programmatically.
60  			 */
61  			protected void setSimTime(long SimTime) {
62  				this.SimTime = SimTime;
63  			}
64  	   	
65  	    			
66  	    				@Override
67  		    			public abstract 
68  		    			VehicleStatic clone();
69  		    			
70  						@Override
71  						public Class getCompositeClass() {
72  							return Vehicle.class;
73  						}
74  	
75  						
76  		    			
77   		/**
78           * Unique Id of the vehicle or vehicle part. 
79           */
80          public abstract UnrealId getId()
81   	;
82  		    			
83   		/**
84           * 
85  			Class of the vehicle. If it is a car, turret etc.
86  		 
87           */
88          public abstract String getType()
89   	;
90  		    			
91   		
92   		@Override
93   		public boolean isDifferentFrom(IStaticWorldObject other)
94   		{
95   			if (other == null) //early fail
96   			{
97   				return true;
98   			}
99   			else if (other == this) //early out
100  			{
101  				return false;
102  			}
103  			else
104  			{
105  				VehicleStatic obj = (VehicleStatic) other;
106 
107  				
108  						if ( !(
109  	 			AdvancedEquals.equalsOrNull(this.getId()
110  	, obj.getId()
111  	)
112  	 		) )
113 						{
114 							System.out.println("!!!!!PROPERTY UPDATE ERROR!!!! on property Id on object class VehicleStatic");
115 							return true;
116 						}
117  					
118  						if ( !(
119  	 			AdvancedEquals.equalsOrNull(this.getType()
120  	, obj.getType()
121  	)
122  	 		) )
123 						{
124 							System.out.println("!!!!!PROPERTY UPDATE ERROR!!!! on property Type on object class VehicleStatic");
125 							return true;
126 						}
127  					
128  			}
129  			return false;
130  		}
131  	 
132  		
133  	    public String toString() {
134             return
135             	super.toString() + "[" +
136             	
137 		              			"Id = " + String.valueOf(getId()
138  	) + " | " + 
139 		              		
140 		              			"Type = " + String.valueOf(getType()
141  	) + " | " + 
142 		              		
143 				"]";           		
144         }
145  	
146  		
147  		public String toHtmlString() {
148  			return super.toString() + "[<br/>" +
149             	
150 		              			"<b>Id</b> = " + String.valueOf(getId()
151  	) + " <br/> " + 
152 		              		
153 		              			"<b>Type</b> = " + String.valueOf(getType()
154  	) + " <br/> " + 
155 		              		
156 				"<br/>]";     
157 		}
158  	
159  		
160  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
161         	
162 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
163 		
164 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=static+classtype[@name=abstract]) ---
165 	        
166 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=static+classtype[@name=abstract]) ---        	            	
167  	
168 		}
169