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=shared]+classtype[@name=abstract] BEGIN
13  		
14  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name=shared]+classtype[@name=abstract] END
15      
16   		/**
17           *  
18              				Abstract definition of the shared part of the GameBots2004 message FLG.  
19              			
20           *
21           *  <p></p><p></p>
22           *  Complete message documentation:               
23           *  
24  		Synchronous message. FlagInfo contains all info about the flag
25  		in the CTF game mode. Is not sent in other game types.
26  	
27           */
28   	public abstract class FlagInfoShared 
29    						extends InfoMessage
30    						implements ISharedWorldObject
31    						
32  	    {
33   	
34      	
35      	
36      	/**
37      	 * Parameter-less contructor for the message.
38      	 */
39  		public FlagInfoShared()
40  		{
41  		}
42  		
43  				// abstract definition of the shared-part of the message, no more constructors is needed
44  			
45  	   		
46  			protected long SimTime;
47  				
48  			/**
49  			 * Simulation time in MILLI SECONDS !!!
50  			 */	
51  			@Override
52  			public long getSimTime() {
53  				return SimTime;
54  			}
55  						
56  			/**
57  			 * Used by Yylex to slip correct time of the object or programmatically.
58  			 */
59  			protected void setSimTime(long SimTime) {
60  				this.SimTime = SimTime;
61  			}
62  	   	
63  	    						public static final Token LocationPropertyToken = Tokens.get("Location");
64  	    					
65  	    						public static final Token HolderPropertyToken = Tokens.get("Holder");
66  	    					
67  	    						public static final Token TeamPropertyToken = Tokens.get("Team");
68  	    					
69  	    						public static final Token StatePropertyToken = Tokens.get("State");
70  	    						
71  							
72  							public static final Set<Token> SharedPropertyTokens;
73  	
74  							static {
75  								Set<Token> tokens = new HashSet<Token>();
76  								
77  									tokens.add(LocationPropertyToken);
78  								
79  									tokens.add(HolderPropertyToken);
80  								
81  									tokens.add(TeamPropertyToken);
82  								
83  									tokens.add(StatePropertyToken);
84  								
85  								SharedPropertyTokens = Collections.unmodifiableSet(tokens);
86  							}
87  	    				
88  	    			
89  	    				@Override
90  		    			public abstract 
91  		    			FlagInfoShared clone();
92  		    			
93  						@Override
94  						public Class getCompositeClass() {
95  							return FlagInfo.class;
96  						}
97  	
98  						
99  		    			
100  		/**
101          * 
102 			An unique Id for this flag, assigned by the game.
103 		 
104          */
105         public abstract UnrealId getId()
106  	;
107 		    			
108  		/**
109          * 
110 			An absolute location of the flag (Sent if we can actually
111 			see the flag).
112 		 
113          */
114         public abstract Location getLocation()
115  	;
116 		    			
117  		/**
118          * 
119 			Id of player/bot holding the flag. (Sent if we can actually
120 			see the flag and the flag is being carried, or if the flag
121 			is being carried by us).
122 		 
123          */
124         public abstract UnrealId getHolder()
125  	;
126 		    			
127  		/**
128          * The owner team of this flag. 
129          */
130         public abstract Integer getTeam()
131  	;
132 		    			
133  		/**
134          * 
135 			Represents the state the flag is in. Can be "Held",
136 			"Dropped" or "Home" (note that the first letter does not have to be in upper case!).
137 		 
138          */
139         public abstract String getState()
140  	;
141 		    			
142  		
143  	    public String toString() {
144             return
145             	super.toString() + "[" +
146             	
147 		              			"Id = " + String.valueOf(getId()
148  	) + " | " + 
149 		              		
150 		              			"Location = " + String.valueOf(getLocation()
151  	) + " | " + 
152 		              		
153 		              			"Holder = " + String.valueOf(getHolder()
154  	) + " | " + 
155 		              		
156 		              			"Team = " + String.valueOf(getTeam()
157  	) + " | " + 
158 		              		
159 		              			"State = " + String.valueOf(getState()
160  	) + " | " + 
161 		              		
162 				"]";           		
163         }
164  	
165  		
166  		public String toHtmlString() {
167  			return super.toString() + "[<br/>" +
168             	
169 		              			"<b>Id</b> = " + String.valueOf(getId()
170  	) + " <br/> " + 
171 		              		
172 		              			"<b>Location</b> = " + String.valueOf(getLocation()
173  	) + " <br/> " + 
174 		              		
175 		              			"<b>Holder</b> = " + String.valueOf(getHolder()
176  	) + " <br/> " + 
177 		              		
178 		              			"<b>Team</b> = " + String.valueOf(getTeam()
179  	) + " <br/> " + 
180 		              		
181 		              			"<b>State</b> = " + String.valueOf(getState()
182  	) + " <br/> " + 
183 		              		
184 				"<br/>]";     
185 		}
186  	
187  		
188  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
189         	
190 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
191 		
192 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=shared+classtype[@name=abstract]) ---
193 	        
194 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=shared+classtype[@name=abstract]) ---        	            	
195  	
196 		}
197