UValue

package liburbi.main;

public enum UDataType {
  DATA_DOUBLE,
  DATA_STRING,
  DATA_BINARY,
  DATA_LIST,
  DATA_OBJECT,
  DATA_VOID;
}

public class UValue {

  public UDataType getType();

  /// value if of type UDataType.DATA_STRING
  /// check that string is not null (it can be in the C++ side,
  /// remember liburbijava is build on top of liburbic++)
  /// with 'isStringNull ()'
  public String getString();
  public boolean isStringNull();

  /// value if of type UDataType.DATA_DOUBLE
  public double getDouble();

  /// value if of type UDataType.DATA_BINARY
  public UBinary getUBinary();

  /// value if of type UDataType.DATA_LIST
  public UList getUList();

  /// Used to print the UValue conveniently
  public String toString();
}

The UValue contains an UDataType which can take the values: DATA_DOUBLE, DATA_STRING, DATA_BINARY, DATA_LIST, DATA_OBJECT, DATA_VOID. Depending of this field, the corresponding value in the UValue will be set. If the UValue is of binary type, it contains an UBinary class defined hereafter. The UBinaryType in the UBinary structure will give additional informations on the type of data (BINARY_NONE, BINARY_UNKNOWN, BINARY_IMAGE, BINARY_SOUND), and the appropriate sound or image structure will be filled.