View Javadoc

1   package cz.cuni.amis.pogamut.ut2004multi.communication.worldview;
2   
3   import java.util.Collection;
4   import java.util.logging.Logger;
5   
6   import com.google.inject.Inject;
7   
8   import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldChangeEvent;
9   import cz.cuni.amis.pogamut.base.communication.worldview.object.WorldObjectId;
10  import cz.cuni.amis.pogamut.base.utils.guice.AgentTeamScoped;
11  import cz.cuni.amis.pogamut.multi.agent.ITeamId;
12  import cz.cuni.amis.pogamut.multi.communication.worldview.impl.BatchAwareSharedWorldView;
13  import cz.cuni.amis.pogamut.multi.communication.worldview.object.ISharedProperty;
14  import cz.cuni.amis.pogamut.multi.communication.worldview.object.ISharedWorldObject;
15  import cz.cuni.amis.pogamut.multi.utils.timekey.TimeKey;
16  import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.EndMessage;
17  import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.UT2004SharedObjectCreator;
18  
19  @AgentTeamScoped
20  
21  /**
22   * Implements the capability to recognize BeginMessages, EndMessages and create the UT2004 shared objects from sharedProperties.
23   */
24  public class UT2004BatchAwareSharedWorldView extends BatchAwareSharedWorldView{
25  
26  	@Inject
27  	public UT2004BatchAwareSharedWorldView(Logger logger) {
28  		super(logger);
29  	}
30  	
31  	@Override
32  	protected boolean isBatchEndEvent(IWorldChangeEvent event) {
33  		return event instanceof EndMessage;
34  	}
35  
36  	@Override
37  	protected ISharedWorldObject createSharedObject(Class msgClass,
38  			WorldObjectId id, ITeamId teamId, TimeKey time) 
39  	{
40  		
41  		Collection<ISharedProperty> properties = this.getSharedProperties(id, teamId, time);
42  		return UT2004SharedObjectCreator.create( msgClass , id , properties);
43  	}
44  
45  	
46  }