The UMessage structure is capable of storing the informations contained in any kind of URBI message by using a "getType" function and an UValue (union of classes). These two classes are defined as follows:
package liburbi.main;
public enum UMessageType {
MESSAGE_SYSTEM, /// System message
MESSAGE_ERROR, /// Error message
MESSAGE_DATA; /// Message containing data in the UValue
}
public class UMessage {
/// Server-side timestamp.
public int getTimestamp();
/// Associated tag.
public String getTag();
/// Type of the UValue contained in the UMessage
public UMessageType getType();
/// UValue contained in the UMessage
public UValue getValue();
public String getMessage();
/// Raw message without the binary data.
public String getRawMessage();
/// Client from which originated the message.
public UAbstractClient getClient();
}
The type field UMessageType can be MESSAGE_SYSTEM, MESSAGE_ERROR or MESSAGE_DATA. If the type is MESSAGE_DATA, the message contains an UValue.