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=base]+classtype[@name=message] BEGIN
13  		
14  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name=base]+classtype[@name=message] END
15      
16   		/**
17           *  
18               				Implementation of the GameBots2004 message FLG contains also its Local/Shared/Static subpart class definitions..  
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 class FlagInfoMessage   
29    				extends 
30    				FlagInfo
31    						implements IWorldObjectUpdatedEvent, ICompositeWorldObjectUpdatedEvent
32    						
33  	    {
34   	
35      	
36      	
37      	/**
38      	 * Parameter-less contructor for the message.
39      	 */
40  		public FlagInfoMessage()
41  		{
42  		}
43  	
44      	
45      	
46      	
47      	/**
48  		 * Creates new instance of the message FlagInfo.
49  		 * 
50  		Synchronous message. FlagInfo contains all info about the flag
51  		in the CTF game mode. Is not sent in other game types.
52  	
53  		 * Corresponding GameBots message
54  		 *   
55  		 *   is
56  		 *   FLG.
57  		 * 
58   	  	 * 
59  		 *   
60  		 *     @param Id 
61  			An unique Id for this flag, assigned by the game.
62  		
63  		 *   
64  		 * 
65  		 *   
66  		 *     @param Location 
67  			An absolute location of the flag (Sent if we can actually
68  			see the flag).
69  		
70  		 *   
71  		 * 
72  		 *   
73  		 *     @param Holder 
74  			Id of player/bot holding the flag. (Sent if we can actually
75  			see the flag and the flag is being carried, or if the flag
76  			is being carried by us).
77  		
78  		 *   
79  		 * 
80  		 *   
81  		 *     @param Team The owner team of this flag.
82  		 *   
83  		 * 
84  		 *   
85  		 *     @param Visible True if the bot can see the flag.
86  		 *   
87  		 * 
88  		 *   
89  		 *     @param State 
90  			Represents the state the flag is in. Can be "Held",
91  			"Dropped" or "Home" (note that the first letter does not have to be in upper case!).
92  		
93  		 *   
94  		 * 
95  		 */
96  		public FlagInfoMessage(
97  			UnrealId Id,  Location Location,  UnrealId Holder,  Integer Team,  boolean Visible,  String State
98  		) {
99  			
100 					this.Id = Id;
101 				
102 					this.Location = Location;
103 				
104 					this.Holder = Holder;
105 				
106 					this.Team = Team;
107 				
108 					this.Visible = Visible;
109 				
110 					this.State = State;
111 				
112 		}
113     
114 		/**
115 		 * Cloning constructor from the full message.
116 		 *
117 		 * @param original
118 		 */
119 		public FlagInfoMessage(FlagInfoMessage original) {		
120 			
121 					this.Id = original.getId()
122  	;
123 				
124 					this.Location = original.getLocation()
125  	;
126 				
127 					this.Holder = original.getHolder()
128  	;
129 				
130 					this.Team = original.getTeam()
131  	;
132 				
133 					this.Visible = original.isVisible()
134  	;
135 				
136 					this.State = original.getState()
137  	;
138 				
139 				this.TeamId = original.getTeamId();
140 			
141 			this.SimTime = original.getSimTime();
142 		}
143 		
144     				
145     					protected ITeamId TeamId;
146     					
147     					/**
148     					 * Used by Yylex to slip corretn TeamId.
149     					 */
150     					protected void setTeamId(ITeamId TeamId) {
151     					    this.TeamId = TeamId;
152     					}
153     				
154     					public ITeamId getTeamId() {
155 							return TeamId;
156 						}
157     	
158     					
159     					
160     	
161 	    /**
162          * 
163 			An unique Id for this flag, assigned by the game.
164 		 
165          */
166         protected
167          UnrealId Id =
168        	null;
169 	
170     						
171     						/**
172 		 					 * Whether property 'Id' was received from GB2004.
173 		 					 */
174 							protected boolean Id_Set = false;
175 							
176     						@Override
177 		    				
178  		/**
179          * 
180 			An unique Id for this flag, assigned by the game.
181 		 
182          */
183         public  UnrealId getId()
184  	 {
185 		    					return Id;
186 		    				}
187 		    			
188     	
189 	    /**
190          * 
191 			An absolute location of the flag (Sent if we can actually
192 			see the flag).
193 		 
194          */
195         protected
196          Location Location =
197        	null;
198 	
199     						
200     						/**
201 		 					 * Whether property 'Location' was received from GB2004.
202 		 					 */
203 							protected boolean Location_Set = false;
204 							
205     						@Override
206 		    				
207  		/**
208          * 
209 			An absolute location of the flag (Sent if we can actually
210 			see the flag).
211 		 
212          */
213         public  Location getLocation()
214  	 {
215 		    					return Location;
216 		    				}
217 		    			
218     	
219 	    /**
220          * 
221 			Id of player/bot holding the flag. (Sent if we can actually
222 			see the flag and the flag is being carried, or if the flag
223 			is being carried by us).
224 		 
225          */
226         protected
227          UnrealId Holder =
228        	null;
229 	
230     						
231     						/**
232 		 					 * Whether property 'Holder' was received from GB2004.
233 		 					 */
234 							protected boolean Holder_Set = false;
235 							
236     						@Override
237 		    				
238  		/**
239          * 
240 			Id of player/bot holding the flag. (Sent if we can actually
241 			see the flag and the flag is being carried, or if the flag
242 			is being carried by us).
243 		 
244          */
245         public  UnrealId getHolder()
246  	 {
247 		    					return Holder;
248 		    				}
249 		    			
250     	
251 	    /**
252          * The owner team of this flag. 
253          */
254         protected
255          Integer Team =
256        	null;
257 	
258     						
259     						/**
260 		 					 * Whether property 'Team' was received from GB2004.
261 		 					 */
262 							protected boolean Team_Set = false;
263 							
264     						@Override
265 		    				
266  		/**
267          * The owner team of this flag. 
268          */
269         public  Integer getTeam()
270  	 {
271 		    					return Team;
272 		    				}
273 		    			
274     	
275 	    /**
276          * True if the bot can see the flag. 
277          */
278         protected
279          boolean Visible =
280        	false;
281 	
282     						
283     						/**
284 		 					 * Whether property 'Visible' was received from GB2004.
285 		 					 */
286 							protected boolean Visible_Set = false;
287 							
288     						@Override
289 		    				
290  		/**
291          * True if the bot can see the flag. 
292          */
293         public  boolean isVisible()
294  	 {
295 		    					return Visible;
296 		    				}
297 		    			
298     	
299 	    /**
300          * 
301 			Represents the state the flag is in. Can be "Held",
302 			"Dropped" or "Home" (note that the first letter does not have to be in upper case!).
303 		 
304          */
305         protected
306          String State =
307        	null;
308 	
309     						
310     						/**
311 		 					 * Whether property 'State' was received from GB2004.
312 		 					 */
313 							protected boolean State_Set = false;
314 							
315     						@Override
316 		    				
317  		/**
318          * 
319 			Represents the state the flag is in. Can be "Held",
320 			"Dropped" or "Home" (note that the first letter does not have to be in upper case!).
321 		 
322          */
323         public  String getState()
324  	 {
325 		    					return State;
326 		    				}
327 		    			
328 		    			
329 		    			private FlagInfoLocal localPart = null;
330 		    			
331 		    			@Override
332 						public FlagInfoLocal 
333 						getLocal() {
334 							if (localPart != null) return localPart;
335 							return localPart = new 
336 								FlagInfoLocalMessage();
337 						}
338 					
339 						private FlagInfoShared sharedPart = null;
340 					
341 						@Override
342 						public FlagInfoShared 
343 						getShared() {
344 							if (sharedPart != null) return sharedPart;							
345 							return sharedPart = new 
346 								FlagInfoSharedMessage();
347 						}
348 					
349 						private FlagInfoStatic staticPart = null; 
350 					
351 						@Override
352 						public FlagInfoStatic 
353 						getStatic() {
354 							if (staticPart != null) return staticPart;
355 							return staticPart = new 
356 								FlagInfoStaticMessage();
357 						}
358     				
359  		/**
360          *  
361             				Implementation of the local part of the GameBots2004 message FLG, used
362             				to facade FLGMessage.  
363             			
364          *
365          *  <p></p><p></p>
366          *  Complete message documentation:               
367          *  
368 		Synchronous message. FlagInfo contains all info about the flag
369 		in the CTF game mode. Is not sent in other game types.
370 	
371          */
372  	public class FlagInfoLocalMessage 
373 	  					extends
374   						FlagInfoLocal
375 	    {
376  	
377 		    			@Override
378 		    			public 
379 		    			FlagInfoLocalMessage clone() {
380 		    				return this;
381 		    			}
382 		    			
383 		    				public FlagInfoLocalMessage getLocal() {
384 								return this;
385 					    	}
386 							public ISharedWorldObject getShared() {
387 							 	throw new UnsupportedOperationException("Could not return LOCAL as SHARED");
388 							}
389 							public IStaticWorldObject getStatic() {
390 							    throw new UnsupportedOperationException("Could not return LOCAL as STATIC");
391 							}
392 		    			
393  		/**
394          * 
395 			An unique Id for this flag, assigned by the game.
396 		 
397          */
398         public  UnrealId getId()
399  	 {
400 				    					return Id;
401 				    				}
402 				    			
403  		/**
404          * True if the bot can see the flag. 
405          */
406         public  boolean isVisible()
407  	 {
408 				    					return Visible;
409 				    				}
410 				    			
411  		
412  	    public String toString() {
413             return
414             	super.toString() + "[" +
415             	
416 		              			"Id = " + String.valueOf(getId()
417  	) + " | " + 
418 		              		
419 		              			"Visible = " + String.valueOf(isVisible()
420  	) + " | " + 
421 		              		
422 				"]";           		
423         }
424  	
425  		
426  		public String toHtmlString() {
427  			return super.toString() + "[<br/>" +
428             	
429 		              			"<b>Id</b> = " + String.valueOf(getId()
430  	) + " <br/> " + 
431 		              		
432 		              			"<b>Visible</b> = " + String.valueOf(isVisible()
433  	) + " <br/> " + 
434 		              		
435 				"<br/>]";     
436 		}
437  	
438  		
439  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
440         	
441 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
442 		
443 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=local+classtype[@name=message]) ---
444 	        
445 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=local+classtype[@name=message]) ---        	            	
446  	
447 		}
448  	
449  		/**
450          *  
451             				Implementation of the static part of the GameBots2004 message FLG, used
452             				to facade FLGMessage.  
453             			
454          *
455          *  <p></p><p></p>
456          *  Complete message documentation:               
457          *  
458 		Synchronous message. FlagInfo contains all info about the flag
459 		in the CTF game mode. Is not sent in other game types.
460 	
461          */
462  	public class FlagInfoStaticMessage 
463 	  					extends
464   						FlagInfoStatic
465 	    {
466  	
467 		    			@Override
468 		    			public 
469 		    			FlagInfoStaticMessage clone() {
470 		    				return this;
471 		    			}
472 		    			
473  		/**
474          * 
475 			An unique Id for this flag, assigned by the game.
476 		 
477          */
478         public  UnrealId getId()
479  	 {
480 				    					return Id;
481 				    				}
482 				    			
483  		
484  		@Override
485  		public boolean isDifferentFrom(IStaticWorldObject other)
486  		{
487  			if (other == null) //early fail
488  			{
489  				return true;
490  			}
491  			else if (other == this) //early out
492  			{
493  				return false;
494  			}
495  			else
496  			{
497  				FlagInfoStatic obj = (FlagInfoStatic) other;
498 
499  				
500  						if ( !(
501  	 			AdvancedEquals.equalsOrNull(this.getId()
502  	, obj.getId()
503  	)
504  	 		) )
505 						{
506 							System.out.println("!!!!!PROPERTY UPDATE ERROR!!!! on property Id on object class FlagInfoStatic");
507 							return true;
508 						}
509  					
510  			}
511  			return false;
512  		}
513  	 
514  		
515  	    public String toString() {
516             return
517             	super.toString() + "[" +
518             	
519 		              			"Id = " + String.valueOf(getId()
520  	) + " | " + 
521 		              		
522 				"]";           		
523         }
524  	
525  		
526  		public String toHtmlString() {
527  			return super.toString() + "[<br/>" +
528             	
529 		              			"<b>Id</b> = " + String.valueOf(getId()
530  	) + " <br/> " + 
531 		              		
532 				"<br/>]";     
533 		}
534  	
535  		
536  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
537         	
538 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
539 		
540 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=static+classtype[@name=message]) ---
541 	        
542 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=static+classtype[@name=message]) ---        	            	
543  	
544 		}
545  	
546  		/**
547          *  
548             				Implementation of the shared part of the GameBots2004 message FLG, used
549             				to facade FLGMessage.  
550             			
551          *
552          *  <p></p><p></p>
553          *  Complete message documentation:               
554          *  
555 		Synchronous message. FlagInfo contains all info about the flag
556 		in the CTF game mode. Is not sent in other game types.
557 	
558          */
559  	public class FlagInfoSharedMessage 
560 	  					extends
561   						FlagInfoShared
562 	    {
563  	
564     	
565     	
566 		public FlagInfoSharedMessage()
567 		{
568 			
569 				propertyMap.put(myLocation.getPropertyId(), myLocation);
570 			
571 				propertyMap.put(myHolder.getPropertyId(), myHolder);
572 			
573 				propertyMap.put(myTeam.getPropertyId(), myTeam);
574 			
575 				propertyMap.put(myState.getPropertyId(), myState);
576 			
577 		}		
578     
579 		    			@Override
580 		    			public 
581 		    			FlagInfoSharedMessage clone() {
582 		    				return this;
583 		    			}
584 		    			
585 		
586 		
587 		
588 		protected HashMap<PropertyId, ISharedProperty> propertyMap = new HashMap<PropertyId, ISharedProperty>(
589 			4
590 		);
591 		
592 		@Override
593 		public ISharedProperty getProperty(PropertyId id) {
594 			return propertyMap.get(id);
595 		}
596 
597 		@Override
598 		public Map<PropertyId, ISharedProperty> getProperties() {
599 			return propertyMap;
600 		}
601 	
602 		
603 		
604  		/**
605          * 
606 			An unique Id for this flag, assigned by the game.
607 		 
608          */
609         public  UnrealId getId()
610  	 {
611   			return Id;
612   		}
613   		
614     	
615 	    /**
616          * 
617 			An absolute location of the flag (Sent if we can actually
618 			see the flag).
619 		 
620          */
621         protected
622          LocationProperty 
623         myLocation
624 					= new
625 					LocationProperty
626 					(
627 						getId(), 
628 						"Location", 
629 						Location, 
630 						FlagInfo.class
631 					);
632 					
633  		/**
634          * 
635 			An absolute location of the flag (Sent if we can actually
636 			see the flag).
637 		 
638          */
639         public  Location getLocation()
640  	 {
641 			  			return myLocation.getValue();
642 			  		}
643 				
644     	
645 	    /**
646          * 
647 			Id of player/bot holding the flag. (Sent if we can actually
648 			see the flag and the flag is being carried, or if the flag
649 			is being carried by us).
650 		 
651          */
652         protected
653          UnrealIdProperty 
654         myHolder
655 					= new
656 					UnrealIdProperty
657 					(
658 						getId(), 
659 						"Holder", 
660 						Holder, 
661 						FlagInfo.class
662 					);
663 					
664  		/**
665          * 
666 			Id of player/bot holding the flag. (Sent if we can actually
667 			see the flag and the flag is being carried, or if the flag
668 			is being carried by us).
669 		 
670          */
671         public  UnrealId getHolder()
672  	 {
673 			  			return myHolder.getValue();
674 			  		}
675 				
676     	
677 	    /**
678          * The owner team of this flag. 
679          */
680         protected
681          IntegerProperty 
682         myTeam
683 					= new
684 					IntegerProperty
685 					(
686 						getId(), 
687 						"Team", 
688 						Team, 
689 						FlagInfo.class
690 					);
691 					
692  		/**
693          * The owner team of this flag. 
694          */
695         public  Integer getTeam()
696  	 {
697 			  			return myTeam.getValue();
698 			  		}
699 				
700     	
701 	    /**
702          * 
703 			Represents the state the flag is in. Can be "Held",
704 			"Dropped" or "Home" (note that the first letter does not have to be in upper case!).
705 		 
706          */
707         protected
708          StringProperty 
709         myState
710 					= new
711 					StringProperty
712 					(
713 						getId(), 
714 						"State", 
715 						State, 
716 						FlagInfo.class
717 					);
718 					
719  		/**
720          * 
721 			Represents the state the flag is in. Can be "Held",
722 			"Dropped" or "Home" (note that the first letter does not have to be in upper case!).
723 		 
724          */
725         public  String getState()
726  	 {
727 			  			return myState.getValue();
728 			  		}
729 				
730  		
731  	    public String toString() {
732             return
733             	super.toString() + "[" +
734             	
735 		              			"Id = " + String.valueOf(getId()
736  	) + " | " + 
737 		              		
738 		              			"Location = " + String.valueOf(getLocation()
739  	) + " | " + 
740 		              		
741 		              			"Holder = " + String.valueOf(getHolder()
742  	) + " | " + 
743 		              		
744 		              			"Team = " + String.valueOf(getTeam()
745  	) + " | " + 
746 		              		
747 		              			"State = " + String.valueOf(getState()
748  	) + " | " + 
749 		              		
750 				"]";           		
751         }
752  	
753  		
754  		public String toHtmlString() {
755  			return super.toString() + "[<br/>" +
756             	
757 		              			"<b>Id</b> = " + String.valueOf(getId()
758  	) + " <br/> " + 
759 		              		
760 		              			"<b>Location</b> = " + String.valueOf(getLocation()
761  	) + " <br/> " + 
762 		              		
763 		              			"<b>Holder</b> = " + String.valueOf(getHolder()
764  	) + " <br/> " + 
765 		              		
766 		              			"<b>Team</b> = " + String.valueOf(getTeam()
767  	) + " <br/> " + 
768 		              		
769 		              			"<b>State</b> = " + String.valueOf(getState()
770  	) + " <br/> " + 
771 		              		
772 				"<br/>]";     
773 		}
774  	
775  		
776  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
777         	
778 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
779 		
780 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=shared+classtype[@name=message]) ---
781 	        
782 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=shared+classtype[@name=message]) ---        	            	
783  	
784 		}
785  	
786     	
787     	
788  	
789 		@Override
790 		public IWorldObjectUpdateResult<IWorldObject> update(IWorldObject object) {
791 			if (object == null)
792 			{
793 				return new IWorldObjectUpdateResult.WorldObjectUpdateResult(IWorldObjectUpdateResult.Result.CREATED, this);
794 			}
795 			if (!( object instanceof FlagInfoMessage) ) {
796 				throw new PogamutException("Can't update different class than FlagInfoMessage, got class " + object.getClass().getSimpleName() + "!", this);		
797 			}
798 			FlagInfoMessage toUpdate = (FlagInfoMessage)object;
799 			
800 			boolean updated = false;
801 			
802 			// UPDATING LOCAL PROPERTIES
803 			
804 				if (toUpdate.Visible != isVisible()
805  	) {
806 				    toUpdate.Visible=isVisible()
807  	;
808 					updated = true;
809 				}
810 			
811          	
812          	// UPDATING SHARED PROPERTIES
813          	
814      		if (getLocation()
815  	 != null) {
816      	
817 	            if (!SafeEquals.equals(toUpdate.Location, getLocation()
818  	)) {
819 					toUpdate.Location=getLocation()
820  	;
821 					updated = true;
822 				}
823 			
824      		}
825      	
826 				if (!SafeEquals.equals(toUpdate.Holder, getHolder()
827  	)) {
828 					toUpdate.Holder=getHolder()
829  	;
830 					updated = true;
831 				}
832 			
833 				if (!SafeEquals.equals(toUpdate.Team, getTeam()
834  	)) {
835 					toUpdate.Team=getTeam()
836  	;
837 					updated = true;
838 				}
839 			
840 				if (!SafeEquals.equals(toUpdate.State, getState()
841  	)) {
842 					toUpdate.State=getState()
843  	;
844 					updated = true;
845 				}
846 			
847          	
848          	// UPDATE TIME
849          	toUpdate.SimTime = SimTime;
850 			
851 			if (updated) {
852 				return new IWorldObjectUpdateResult.WorldObjectUpdateResult<IWorldObject>(IWorldObjectUpdateResult.Result.UPDATED, toUpdate);
853 			} else {
854 				return new IWorldObjectUpdateResult.WorldObjectUpdateResult<IWorldObject>(IWorldObjectUpdateResult.Result.SAME, toUpdate);
855 			}
856 		}
857 		
858 		@Override
859 		public ILocalWorldObjectUpdatedEvent getLocalEvent() {
860 			return new FlagInfoLocalImpl.FlagInfoLocalUpdate
861     (this.getLocal(), SimTime);
862 		}
863 
864 		@Override
865 		public ISharedWorldObjectUpdatedEvent getSharedEvent() {
866 			return new FlagInfoSharedImpl.FlagInfoSharedUpdate
867     (this.getShared(), SimTime, this.getTeamId());
868 		}
869 
870 		@Override
871 		public IStaticWorldObjectUpdatedEvent getStaticEvent() {
872 			return new FlagInfoStaticImpl.FlagInfoStaticUpdate
873     (this.getStatic(), SimTime);
874 		}
875  	
876  		
877  	    public String toString() {
878             return
879             	super.toString() + "[" +
880             	
881 		              			"Id = " + String.valueOf(getId()
882  	) + " | " + 
883 		              		
884 		              			"Location = " + String.valueOf(getLocation()
885  	) + " | " + 
886 		              		
887 		              			"Holder = " + String.valueOf(getHolder()
888  	) + " | " + 
889 		              		
890 		              			"Team = " + String.valueOf(getTeam()
891  	) + " | " + 
892 		              		
893 		              			"Visible = " + String.valueOf(isVisible()
894  	) + " | " + 
895 		              		
896 		              			"State = " + String.valueOf(getState()
897  	) + " | " + 
898 		              		
899 				"]";           		
900         }
901  	
902  		
903  		public String toHtmlString() {
904  			return super.toString() + "[<br/>" +
905             	
906 		              			"<b>Id</b> = " + String.valueOf(getId()
907  	) + " <br/> " + 
908 		              		
909 		              			"<b>Location</b> = " + String.valueOf(getLocation()
910  	) + " <br/> " + 
911 		              		
912 		              			"<b>Holder</b> = " + String.valueOf(getHolder()
913  	) + " <br/> " + 
914 		              		
915 		              			"<b>Team</b> = " + String.valueOf(getTeam()
916  	) + " <br/> " + 
917 		              		
918 		              			"<b>Visible</b> = " + String.valueOf(isVisible()
919  	) + " <br/> " + 
920 		              		
921 		              			"<b>State</b> = " + String.valueOf(getState()
922  	) + " <br/> " + 
923 		              		
924 				"<br/>]";     
925 		}
926  	
927  		
928  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
929         	
930 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
931 		
932 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=base+classtype[@name=message]) ---
933 	        
934 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=base+classtype[@name=message]) ---        	            	
935  	
936 		}
937