View Javadoc

1   package cz.cuni.amis.pogamut.ut2004multi.communication.worldview.objects;
2   
3   import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldObjectUpdatedEvent;
4   import cz.cuni.amis.pogamut.multi.communication.worldview.object.ILocalWorldObject;
5   import cz.cuni.amis.pogamut.multi.communication.worldview.object.ISharedWorldObject;
6   import cz.cuni.amis.pogamut.multi.communication.worldview.object.IStaticWorldObject;
7   import cz.cuni.amis.utils.exception.PogamutException;
8   import cz.cuni.amis.utils.flag.FlagInteger;
9   import cz.cuni.amis.utils.flag.ImmutableFlag;
10  
11  public class TestCompositeViewableObjectImpl extends TestCompositeViewableObject{
12  	
13  	protected TestLocalViewableObject localPart;
14  	protected TestSharedViewableObject sharedPart;
15  	protected TestStaticViewableObject staticPart;
16  	
17  	private static FlagInteger instances = new FlagInteger(0);
18  	
19  	public static ImmutableFlag<Integer> getInstances() {
20  		return instances.getImmutable();
21  	}
22  	
23  	@Override
24  	protected void finalize() throws Throwable {
25  		super.finalize();
26  		instances.decrement(1);
27  	}
28  	
29  	public TestCompositeViewableObjectImpl( TestLocalViewableObject localPart, TestSharedViewableObject sharedPart, TestStaticViewableObject staticPart)
30  	{
31  		super(localPart.getId());
32  		instances.increment(1);
33  		this.localPart = localPart;
34  		if ( sharedPart.getId() != this.id || staticPart.getId() != this.getId())
35  		{
36  			throw new PogamutException("Trying to create composite object from objects with different Ids", this);
37  		}
38  		
39  		this.sharedPart = sharedPart;
40  		this.staticPart = staticPart;
41  			
42  	}
43  
44  	@Override
45  	public ILocalWorldObject getLocal() {
46  		return localPart;
47  	}
48  
49  	@Override
50  	public ISharedWorldObject getShared() {
51  		return sharedPart;
52  	}
53  
54  	@Override
55  	public IStaticWorldObject getStatic() {
56  		return staticPart;
57  	}
58  
59  	@Override
60  	public long getSimTime() {
61  		if ( localPart.getSimTime() < sharedPart.getSimTime() )
62  		{
63  			return sharedPart.getSimTime();
64  		}
65  		return localPart.getSimTime();
66  	}
67  
68  	@Override
69  	public String getLocalString() {
70  		return localPart.getLocalString();
71  	}
72  
73  	@Override
74  	public long getLocalLong() {
75  		return localPart.getLocalLong();
76  	}
77  
78  	@Override
79  	public String getStaticString() {
80  		return staticPart.getStaticString();
81  	}
82  
83  	@Override
84  	public long getStaticLong() {
85  		return staticPart.getStaticLong();
86  	}
87  
88  	@Override
89  	public String getSharedString() {
90  		return sharedPart.getSharedString();
91  	}
92  
93  	@Override
94  	public long getSharedLong() {
95  		return sharedPart.getSharedLong();
96  	}
97  
98  	@Override
99  	public IWorldObjectUpdatedEvent createDisappearEvent() {
100 		// TODO Auto-generated method stub
101 		return null;
102 	}
103 
104 	@Override
105 	public boolean isVisible() {
106 		return localPart.isVisible();
107 	}
108 	
109 }