View Javadoc

1   
2       		/**
3            	IMPORTANT !!!
4   
5            	DO NOT EDIT THIS FILE. IT IS GENERATED FROM 
6            	THE JavaClassesGenerator.xslt. MODIFY THAT FILE INSTEAD OF THIS ONE.
7            
8            	Use Ant task process-gb-messages after that to generate this file again.
9            
10           	IMPORTANT END !!!
11          	*/
12   			   	
13      		package cz.cuni.amis.pogamut.ut3.communication.messages.gbinfomessages;
14  
15              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.*;
16  
17              public class UT2004SharedObjectCreator {
18  	
19  				public static interface ISharedObjectCreator<T extends ICompositeWorldObject>
20  				{
21  					public ISharedWorldObject create(WorldObjectId id, Collection<ISharedProperty> c);
22  				}
23  				
24  				
25  					public static class EmptySharedCreator implements ISharedObjectCreator<Empty>
26  					{
27  						@Override
28  						public ISharedWorldObject create(WorldObjectId id, Collection<ISharedProperty> c) {
29  							return new EmptySharedImpl(id, c);
30  						}
31  					}
32  				
33  					public static class AliveMessageSharedCreator implements ISharedObjectCreator<AliveMessage>
34  					{
35  						@Override
36  						public ISharedWorldObject create(WorldObjectId id, Collection<ISharedProperty> c) {
37  							return new AliveMessageSharedImpl(id, c);
38  						}
39  					}
40  				
41  				
42  				private static HashMap<Class, ISharedObjectCreator> map = new HashMap<Class, ISharedObjectCreator>();
43  	
44  				static {
45  					
46  						map.put(
47  							Empty
48  							.class, 
49  							new EmptySharedCreator()
50  						);
51  					
52  						map.put(
53  							AliveMessage
54  							.class, 
55  							new AliveMessageSharedCreator()
56  						);
57  										
58  				}				
59  				
60  				public static ISharedWorldObject create(Class msgClass, WorldObjectId objectId, Collection<ISharedProperty> properties )
61  				{
62  					NullCheck.check(msgClass, "msgClass");
63  					NullCheck.check(objectId, "objectId");
64  					NullCheck.check(properties, "properties");
65  					
66  					ISharedObjectCreator creator = map.get(msgClass);
67  					if (creator == null) {
68  					    throw new PogamutException("There is no shared obejct creator for class " + msgClass + ".", UT2004SharedObjectCreator.class);
69  					}
70  					return creator.create(objectId, properties);
71  				}
72  			}
73