1 package cz.cuni.amis.pogamut.usar2004.agent.module.geometry;
2
3 import cz.cuni.amis.pogamut.usar2004.agent.module.datatypes.GeometryType;
4 import cz.cuni.amis.pogamut.usar2004.communication.messages.usarinfomessages.GeometryMessage;
5
6 /**
7 * Parent class for all possible geometry subjects. It covers the basic and
8 * common properties for all the geometry subjects.
9 *
10 * @author vejmanm
11 */
12 public abstract class SuperGeometry
13 {
14 protected GeometryMessage lastMessage;
15 protected GeometryType geoType;
16
17 /**
18 * Ctor.
19 *
20 * @param type Geometry type describes particular subject about which we
21 * want to know about. It is used to distinguish incoming message from the
22 * server.
23 */
24 protected SuperGeometry(GeometryType type)
25 {
26 this.geoType = type;
27 }
28
29 /**
30 * Used to make sure the object is filled.
31 *
32 * @return Returns true if the object is filled with Geo. message.
33 */
34 public Boolean isReady()
35 {
36 return (lastMessage != null);
37 }
38
39 /**
40 * Type describes the vehicle type. It will be one of the following values:
41 * "GroundVehicle”, “LeggedRobot”, “NauticVehicle”, or “AerialVehicle” of
42 * "Camera" or some kind of sensor or effecter or "MisPkg".
43 *
44 * @return Returns type of the geometry message.
45 */
46 public String getType()
47 {
48 return lastMessage.getType();
49 }
50
51 /**
52 * Name of the subject that this geometry message concerns.
53 *
54 * @return Returns the name of the Geometry item.
55 */
56 public String getName()
57 {
58 return lastMessage.getName();
59 }
60
61 /**
62 * GeometryType is a descriptor used for creating particular instance and
63 * for getting type information about particular configuration subject.
64 *
65 * @return Returns GeometryType.
66 */
67 public GeometryType getGeometryType()
68 {
69 return geoType;
70 }
71
72 /**
73 * Method used for updating the message object that provides particular
74 * properties for given type. Note that this object is created by yylex
75 * parser and contains properties for all configuration subject types. But
76 * only relevat to individual Geometry Subject are filled.
77 *
78 * @param message Geometry message from server.
79 */
80 public void updateMessage(GeometryMessage message)
81 {
82 //if(message.getType().equalsIgnoreCase(SensorType))
83 lastMessage = message;
84 }
85 }