1 package cz.cuni.amis.pogamut.base.communication.translator.event;
2
3 import cz.cuni.amis.pogamut.base.communication.worldview.object.IWorldObject;
4 import cz.cuni.amis.utils.NullCheck;
5
6
7
8
9
10
11
12
13
14
15 public interface IWorldObjectUpdateResult<OBJECT extends IWorldObject> {
16
17
18
19
20
21
22
23 public static enum Result
24 {
25 CREATED,
26 UPDATED,
27 SAME,
28 DESTROYED;
29 }
30
31
32
33
34
35 public Result getResult();
36
37
38
39
40
41 public OBJECT getObject();
42
43
44
45
46
47
48
49 public static class WorldObjectUpdateResult<OBJECT extends IWorldObject>
50 implements IWorldObjectUpdateResult<OBJECT>
51 {
52
53 private Result result;
54 private OBJECT object;
55
56 public WorldObjectUpdateResult(Result result, OBJECT object) {
57 this.result = result;
58 NullCheck.check(this.result, "result");
59 this.object = object;
60 if (result != Result.DESTROYED) {
61 NullCheck.check(this.object, "object (result != DESTROYED)");
62 }
63 }
64
65 @Override
66 public OBJECT getObject() {
67 return object;
68 }
69
70 @Override
71 public Result getResult() {
72 return result;
73 }
74
75 }
76 }
77