View Javadoc

1   package cz.cuni.amis.pogamut.multi.communication.worldview.object;
2   
3   import java.util.Map;
4   
5   import cz.cuni.amis.pogamut.base.communication.worldview.object.IWorldObject;
6   import cz.cuni.amis.pogamut.multi.agent.ITeamId;
7   import cz.cuni.amis.pogamut.multi.communication.translator.event.ISharedWorldObjectUpdatedEvent;
8   import cz.cuni.amis.pogamut.multi.communication.worldview.property.PropertyId;
9   
10  /**
11   * general interface for all sharedWorldObjects.
12   * @author srlok
13   *
14   */
15  public interface ISharedWorldObject extends IWorldObject, Cloneable {
16  
17  	/**
18  	 * Returns world time when the object was seen/updated for the last time.
19  	 * <p><p>
20  	 * The time suppose to be growing as the simulation carries on.
21  	 * <p>
22  	 * Always should be actual_timestamp >= any_prevously_recorded_timestamp,
23  	 * <p><p>
24  	 * object1.getLastSeenTime() > object2.getLastSeenTime() means that object1 last seen after object2
25  	 * 
26  	 * @return
27  	 */
28  	 public long getSimTime();
29  	
30  	 //Public ISharedWorldObjectUpdatedEvent createUpdateEvent( long time, ITeamId teamId);
31  	 
32  	public ISharedWorldObject clone();
33  	public ISharedProperty getProperty( PropertyId id);
34  	public Map<PropertyId, ISharedProperty> getProperties();
35  	public Class getCompositeClass();
36  
37  }