Package commonj.sdo

# Interface DataObject

All Superinterfaces:
  `Serializable`

public interface DataObject extends Serializable
A data object is a representation of some structured data. It is the fundamental component in the SDO (Service Data Objects) package. Data objects support reflection, path-based accesss, convenience creation and deletion methods, and the ability to be part of a `data graph`.

Each data object holds its data as a series of `Properties`. Properties can be accessed by name, property index, or using the property meta object itself. A data object can also contain references to other data objects, through reference-type Properties.

A data object has a series of convenience accessors for its Properties. These methods either use a path (String), a property index, or the `property's meta object` itself, to identify the property. Some examples of the path-based accessors are as follows:

     DataObject company = ...;
     company.get("name");                   is the same as company.get(company.getType().getProperty("name"))
     company.set("name", "acme");
     company.get("department.0/name")       is the same as ((DataObject)((List)company.get("department")).get(0)).get("name")
                                            .n  indexes from 0 ... implies the name property of the first department
     company.get("department[1]/name")      [] indexes from 1 ... implies the name property of the first department
     company.get("department[number=123]")  returns the first department where number=123
     company.get("..")                      returns the containing data object
     company.get("/")                       returns the root containing data object

There are general accessors for Properties, i.e., `get` and `set`, as well as specific accessors for the primitive types and commonly used data types like String, Date, List, BigInteger, and BigDecimal.

## Method Summary

Modifier and Type
Method
Description
`DataObject`
`createDataObject(int propertyIndex)`
Returns a new `data object` contained by this object using the specified property, which must be a `containment property`.
`DataObject`
`createDataObject(int propertyIndex, String namespaceURI, String typeName)`
Returns a new `data object` contained by this object using the specified property, which must be a `containment property`.
`DataObject`
`createDataObject(Property property)`
Returns a new `data object` contained by this object using the specified property, which must be a `containment property`.
`DataObject`
`createDataObject(Property property, Type type)`
Returns a new `data object` contained by this object using the specified property, which must be of `containment type`.
`DataObject`
`createDataObject(String propertyName)`
Returns a new `data object` contained by this object using the specified property, which must be a `containment property`.
`DataObject`
`createDataObject(String propertyName, String namespaceURI, String typeName)`
Returns a new `data object` contained by this object using the specified property, which must be a `containment property`.
`void`
`delete()`
Remove this object from its container and then unset all its non-`readOnly` Properties.
`void`
`detach()`
Removes this DataObject from its container, if any.
`Object`
`get(int propertyIndex)`
Returns the value of the property at the specified index in `property list` of this object's `type`.
`Object`
`get(Property property)`
Returns the value of the given property of this object.
`Object`
`get(String path)`
Returns the value of a property of either this object or an object reachable from it, as identified by the specified path.
`BigDecimal`
`getBigDecimal(int propertyIndex)`
Returns the value of a `BigDecimal` property identified by the specified property index.
`BigDecimal`
`getBigDecimal(Property property)`
Returns the value of the specified `BigDecimal` property.
`BigDecimal`
`getBigDecimal(String path)`
Returns the value of a `BigDecimal` property identified by the specified path.
`BigInteger`
`getBigInteger(int propertyIndex)`
Returns the value of a `BigInteger` property identified by the specified property index.
`BigInteger`
`getBigInteger(Property property)`
Returns the value of the specified `BigInteger` property.
`BigInteger`
`getBigInteger(String path)`
Returns the value of a `BigInteger` property identified by the specified path.
`boolean`
`getBoolean(int propertyIndex)`
Returns the value of a `boolean` property identified by the specified property index.
`boolean`
`getBoolean(Property property)`
Returns the value of the specified `boolean` property.
`boolean`
`getBoolean(String path)`
Returns the value of a `boolean` property identified by the specified path.
`byte`
`getByte(int propertyIndex)`
Returns the value of a `byte` property identified by the specified property index.
`byte`
`getByte(Property property)`
Returns the value of the specified `byte` property.
`byte`
`getByte(String path)`
Returns the value of a `byte` property identified by the specified path.
`byte[]`
`getBytes(int propertyIndex)`
Returns the value of a `byte[]` property identified by the specified property index.
`byte[]`
`getBytes(Property property)`
Returns the value of the specified `byte[]` property.
`byte[]`
`getBytes(String path)`
Returns the value of a `byte[]` property identified by the specified path.
`ChangeSummary`
`getChangeSummary()`
Returns the ChangeSummary with scope covering this dataObject, or null if there is no ChangeSummary.
`char`
`getChar(int propertyIndex)`
Returns the value of a `char` property identified by the specified property index.
`char`
`getChar(Property property)`
Returns the value of the specified `char` property.
`char`
`getChar(String path)`
Returns the value of a `char` property identified by the specified path.
`DataObject`
`getContainer()`
Returns the containing `data object` or `null` if there is no container.
`Property`
`getContainmentProperty()`
Return the Property of the `data object` containing this data object or `null` if there is no container.
`DataGraph`
`getDataGraph()`
Returns the `data graph` for this object or `null` if there isn't one.
`DataObject`
`getDataObject(int propertyIndex)`
Returns the value of a `DataObject` property identified by the specified property index.
`DataObject`
`getDataObject(Property property)`
Returns the value of the specified `DataObject` property.
`DataObject`
`getDataObject(String path)`
Returns the value of a `DataObject` property identified by the specified path.
`Date`
`getDate(int propertyIndex)`
Returns the value of a `Date` property identified by the specified property index.
`Date`
`getDate(Property property)`
Returns the value of the specified `Date` property.
`Date`
`getDate(String path)`
Returns the value of a `Date` property identified by the specified path.
`double`
`getDouble(int propertyIndex)`
Returns the value of a `double` property identified by the specified property index.
`double`
`getDouble(Property property)`
Returns the value of the specified `double` property.
`double`
`getDouble(String path)`
Returns the value of a `double` property identified by the specified path.
`float`
`getFloat(int propertyIndex)`
Returns the value of a `float` property identified by the specified property index.
`float`
`getFloat(Property property)`
Returns the value of the specified `float` property.
`float`
`getFloat(String path)`
Returns the value of a `float` property identified by the specified path.
`List`
`getInstanceProperties()`
Returns a read-only List of the Properties currently used in this DataObject.
`Property`
`getInstanceProperty(String propertyName)`
Returns the named Property from the current instance properties, or null if not found.
`int`
`getInt(int propertyIndex)`
Returns the value of a `int` property identified by the specified property index.
`int`
`getInt(Property property)`
Returns the value of the specified `int` property.
`int`
`getInt(String path)`
Returns the value of a `int` property identified by the specified path.
`List`
`getList(int propertyIndex)`
Returns the value of a `List` property identified by the specified property index.
`List`
`getList(Property property)`
Returns the value of the specified `List` property.
`List`
`getList(String path)`
Returns the value of a `List` property identified by the specified path.
`long`
`getLong(int propertyIndex)`
Returns the value of a `long` property identified by the specified property index.
`long`
`getLong(Property property)`
Returns the value of the specified `long` property.
`long`
`getLong(String path)`
Returns the value of a `long` property identified by the specified path.
`Property`
`getProperty(String propertyName)`
Deprecated.
replaced by `getInstanceProperty(String)` in 2.1.0
`DataObject`
`getRootObject()`
Returns the root `data object`.
`Sequence`
`getSequence()`
Returns the `Sequence` for this DataObject.
`Sequence`
`getSequence(int propertyIndex)`
Deprecated.
in 2.1.0.
`Sequence`
`getSequence(Property property)`
Deprecated.
in 2.1.0.
`Sequence`
`getSequence(String path)`
Deprecated.
in 2.1.0.
`short`
`getShort(int propertyIndex)`
Returns the value of a `short` property identified by the specified property index.
`short`
`getShort(Property property)`
Returns the value of the specified `short` property.
`short`
`getShort(String path)`
Returns the value of a `short` property identified by the specified path.
`String`
`getString(int propertyIndex)`
Returns the value of a `String` property identified by the specified property index.
`String`
`getString(Property property)`
Returns the value of the specified `String` property.
`String`
`getString(String path)`
Returns the value of a `String` property identified by the specified path.
`Type`
`getType()`
Returns the data object's type.
`boolean`
`isSet(int propertyIndex)`
Returns whether the the property at the specified index in `property list` of this object's `type`, is considered to be set.
`boolean`
`isSet(Property property)`
Returns whether the property of the object is considered to be set.
`boolean`
`isSet(String path)`
Returns whether a property of either this object or an object reachable from it, as identified by the specified path, is considered to be set.
`void`
`set(int propertyIndex, Object value)`
Sets the property at the specified index in `property list` of this object's `type`, to the specified value.
`void`
`set(Property property, Object value)`
Sets the value of the given property of the object to the new value.
`void`
`set(String path, Object value)`
Sets a property of either this object or an object reachable from it, as identified by the specified path, to the specified value.
`void`
`setBigDecimal(int propertyIndex, BigDecimal value)`
Sets the value of a `BigDecimal` property identified by the specified property index, to the specified value.
`void`
`setBigDecimal(Property property, BigDecimal value)`
Sets the value of the specified `BigDecimal` property, to the specified value.
`void`
`setBigDecimal(String path, BigDecimal value)`
Sets the value of a `BigDecimal` property identified by the specified path, to the specified value.
`void`
`setBigInteger(int propertyIndex, BigInteger value)`
Sets the value of a `BigInteger` property identified by the specified property index, to the specified value.
`void`
`setBigInteger(Property property, BigInteger value)`
Sets the value of the specified `BigInteger` property, to the specified value.
`void`
`setBigInteger(String path, BigInteger value)`
Sets the value of a `BigInteger` property identified by the specified path, to the specified value.
`void`
`setBoolean(int propertyIndex, boolean value)`
Sets the value of a `boolean` property identified by the specified property index, to the specified value.
`void`
`setBoolean(Property property, boolean value)`
Sets the value of the specified `boolean` property, to the specified value.
`void`
`setBoolean(String path, boolean value)`
Sets the value of a `boolean` property identified by the specified path, to the specified value.
`void`
`setByte(int propertyIndex, byte value)`
Sets the value of a `byte` property identified by the specified property index, to the specified value.
`void`
`setByte(Property property, byte value)`
Sets the value of the specified `byte` property, to the specified value.
`void`
`setByte(String path, byte value)`
Sets the value of a `byte` property identified by the specified path, to the specified value.
`void`
`setBytes(int propertyIndex, byte[] value)`
Sets the value of a `byte[]` property identified by the specified property index, to the specified value.
`void`
`setBytes(Property property, byte[] value)`
Sets the value of the specified `byte[]` property, to the specified value.
`void`
`setBytes(String path, byte[] value)`
Sets the value of a `byte[]` property identified by the specified path, to the specified value.
`void`
`setChar(int propertyIndex, char value)`
Sets the value of a `char` property identified by the specified property index, to the specified value.
`void`
`setChar(Property property, char value)`
Sets the value of the specified `char` property, to the specified value.
`void`
`setChar(String path, char value)`
Sets the value of a `char` property identified by the specified path, to the specified value.
`void`
`setDataObject(int propertyIndex, DataObject value)`
Sets the value of a `DataObject` property identified by the specified property index, to the specified value.
`void`
`setDataObject(Property property, DataObject value)`
Sets the value of the specified `DataObject` property, to the specified value.
`void`
`setDataObject(String path, DataObject value)`
Sets the value of a `DataObject` property identified by the specified path, to the specified value.
`void`
`setDate(int propertyIndex, Date value)`
Sets the value of a `Date` property identified by the specified property index, to the specified value.
`void`
`setDate(Property property, Date value)`
Sets the value of the specified `Date` property, to the specified value.
`void`
`setDate(String path, Date value)`
Sets the value of a `Date` property identified by the specified path, to the specified value.
`void`
`setDouble(int propertyIndex, double value)`
Sets the value of a `double` property identified by the specified property index, to the specified value.
`void`
`setDouble(Property property, double value)`
Sets the value of the specified `double` property, to the specified value.
`void`
`setDouble(String path, double value)`
Sets the value of a `double` property identified by the specified path, to the specified value.
`void`
`setFloat(int propertyIndex, float value)`
Sets the value of a `float` property identified by the specified property index, to the specified value.
`void`
`setFloat(Property property, float value)`
Sets the value of the specified `float` property, to the specified value.
`void`
`setFloat(String path, float value)`
Sets the value of a `float` property identified by the specified path, to the specified value.
`void`
`setInt(int propertyIndex, int value)`
Sets the value of a `int` property identified by the specified property index, to the specified value.
`void`
`setInt(Property property, int value)`
Sets the value of the specified `int` property, to the specified value.
`void`
`setInt(String path, int value)`
Sets the value of a `int` property identified by the specified path, to the specified value.
`void`
`setList(int propertyIndex, List value)`
Sets the value of a `List` property identified by the specified property index, to the specified value.
`void`
`setList(Property property, List value)`
Sets the value of the specified `List` property, to the specified value.
`void`
`setList(String path, List value)`
Sets the value of a `List` property identified by the specified path, to the specified value.
`void`
`setLong(int propertyIndex, long value)`
Sets the value of a `long` property identified by the specified property index, to the specified value.
`void`
`setLong(Property property, long value)`
Sets the value of the specified `long` property, to the specified value.
`void`
`setLong(String path, long value)`
Sets the value of a `long` property identified by the specified path, to the specified value.
`void`
`setShort(int propertyIndex, short value)`
Sets the value of a `short` property identified by the specified property index, to the specified value.
`void`
`setShort(Property property, short value)`
Sets the value of the specified `short` property, to the specified value.
`void`
`setShort(String path, short value)`
Sets the value of a `short` property identified by the specified path, to the specified value.
`void`
`setString(int propertyIndex, String value)`
Sets the value of a `String` property identified by the specified property index, to the specified value.
`void`
`setString(Property property, String value)`
Sets the value of the specified `String` property, to the specified value.
`void`
`setString(String path, String value)`
Sets the value of a `String` property identified by the specified path, to the specified value.
`void`
`unset(int propertyIndex)`
Unsets the property at the specified index in `property list` of this object's `type`.
`void`
`unset(Property property)`
Unsets the property of the object.
`void`
`unset(String path)`
Unsets a property of either this object or an object reachable from it, as identified by the specified path.

## Method Details

### get

Object get(String path)
Returns the value of a property of either this object or an object reachable from it, as identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the value of the specified property.
See Also:
  - `get(Property)`

### set

void set(String path, Object value)
Sets a property of either this object or an object reachable from it, as identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### isSet

boolean isSet(String path)
Returns whether a property of either this object or an object reachable from it, as identified by the specified path, is considered to be set.

Parameters:
  `path` - the path to a valid object and property.
See Also:
  - `isSet(Property)`

### unset

void unset(String path)
Unsets a property of either this object or an object reachable from it, as identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
See Also:
  - `unset(Property)`

### getBoolean

boolean getBoolean(String path)
Returns the value of a `boolean` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `boolean` value of the specified property.
See Also:
  - `get(String)`

### getByte

byte getByte(String path)
Returns the value of a `byte` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `byte` value of the specified property.
See Also:
  - `get(String)`

### getChar

char getChar(String path)
Returns the value of a `char` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `char` value of the specified property.
See Also:
  - `get(String)`

### getDouble

double getDouble(String path)
Returns the value of a `double` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `double` value of the specified property.
See Also:
  - `get(String)`

### getFloat

float getFloat(String path)
Returns the value of a `float` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `float` value of the specified property.
See Also:
  - `get(String)`

### getInt

int getInt(String path)
Returns the value of a `int` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `int` value of the specified property.
See Also:
  - `get(String)`

### getLong

long getLong(String path)
Returns the value of a `long` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `long` value of the specified property.
See Also:
  - `get(String)`

### getShort

short getShort(String path)
Returns the value of a `short` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `short` value of the specified property.
See Also:
  - `get(String)`

### getBytes

byte[] getBytes(String path)
Returns the value of a `byte[]` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `byte[]` value of the specified property.
See Also:
  - `get(String)`

### getBigDecimal

BigDecimal getBigDecimal(String path)
Returns the value of a `BigDecimal` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `BigDecimal` value of the specified property.
See Also:
  - `get(String)`

### getBigInteger

BigInteger getBigInteger(String path)
Returns the value of a `BigInteger` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `BigInteger` value of the specified property.
See Also:
  - `get(String)`

### getDataObject

DataObject getDataObject(String path)
Returns the value of a `DataObject` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `DataObject` value of the specified property.
See Also:
  - `get(String)`

### getDate

Date getDate(String path)
Returns the value of a `Date` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `Date` value of the specified property.
See Also:
  - `get(String)`

### getString

String getString(String path)
Returns the value of a `String` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `String` value of the specified property.
See Also:
  - `get(String)`

### getList

List getList(String path)
Returns the value of a `List` property identified by the specified path.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `List` value of the specified property.
See Also:
  - `get(String)`

### getSequence

Sequence getSequence(String path)
Deprecated.
in 2.1.0.

Parameters:
  `path` - the path to a valid object and property.
Returns:
  the `Sequence` value of the specified property.
See Also:
  - `Returns the value of a `Sequence` property identified by the specified path. An implementation may throw an UnsupportedOperationException.`
  - `get(String)`

### setBoolean

void setBoolean(String path, boolean value)
Sets the value of a `boolean` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setByte

void setByte(String path, byte value)
Sets the value of a `byte` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setChar

void setChar(String path, char value)
Sets the value of a `char` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setDouble

void setDouble(String path, double value)
Sets the value of a `double` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setFloat

void setFloat(String path, float value)
Sets the value of a `float` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setInt

void setInt(String path, int value)
Sets the value of a `int` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setLong

void setLong(String path, long value)
Sets the value of a `long` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setShort

void setShort(String path, short value)
Sets the value of a `short` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setBytes

void setBytes(String path, byte[] value)
Sets the value of a `byte[]` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setBigDecimal

void setBigDecimal(String path, BigDecimal value)
Sets the value of a `BigDecimal` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setBigInteger

void setBigInteger(String path, BigInteger value)
Sets the value of a `BigInteger` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setDataObject

void setDataObject(String path, DataObject value)
Sets the value of a `DataObject` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setDate

void setDate(String path, Date value)
Sets the value of a `Date` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setString

void setString(String path, String value)
Sets the value of a `String` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`

### setList

void setList(String path, List value)
Sets the value of a `List` property identified by the specified path, to the specified value.

Parameters:
  `path` - the path to a valid object and property.
  `value` - the new value for the property.
See Also:
  - `set(String, Object)`
  - `setList(Property, List)`

### get

Object get(int propertyIndex)
Returns the value of the property at the specified index in `property list` of this object's `type`.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the value of the specified property.
See Also:
  - `get(Property)`

### set

void set(int propertyIndex, Object value)
Sets the property at the specified index in `property list` of this object's `type`, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### isSet

boolean isSet(int propertyIndex)
Returns whether the the property at the specified index in `property list` of this object's `type`, is considered to be set.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  whether the specified property is set.
See Also:
  - `isSet(Property)`

### unset

void unset(int propertyIndex)
Unsets the property at the specified index in `property list` of this object's `type`.

Parameters:
  `propertyIndex` - the index of the property.
See Also:
  - `unset(Property)`

### getBoolean

boolean getBoolean(int propertyIndex)
Returns the value of a `boolean` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `boolean` value of the specified property.
See Also:
  - `get(int)`

### getByte

byte getByte(int propertyIndex)
Returns the value of a `byte` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `byte` value of the specified property.
See Also:
  - `get(int)`

### getChar

char getChar(int propertyIndex)
Returns the value of a `char` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `char` value of the specified property.
See Also:
  - `get(int)`

### getDouble

double getDouble(int propertyIndex)
Returns the value of a `double` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `double` value of the specified property.
See Also:
  - `get(int)`

### getFloat

float getFloat(int propertyIndex)
Returns the value of a `float` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `float` value of the specified property.
See Also:
  - `get(int)`

### getInt

int getInt(int propertyIndex)
Returns the value of a `int` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `int` value of the specified property.
See Also:
  - `get(int)`

### getLong

long getLong(int propertyIndex)
Returns the value of a `long` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `long` value of the specified property.
See Also:
  - `get(int)`

### getShort

short getShort(int propertyIndex)
Returns the value of a `short` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `short` value of the specified property.
See Also:
  - `get(int)`

### getBytes

byte[] getBytes(int propertyIndex)
Returns the value of a `byte[]` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `byte[]` value of the specified property.
See Also:
  - `get(int)`

### getBigDecimal

BigDecimal getBigDecimal(int propertyIndex)
Returns the value of a `BigDecimal` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `BigDecimal` value of the specified property.
See Also:
  - `get(int)`

### getBigInteger

BigInteger getBigInteger(int propertyIndex)
Returns the value of a `BigInteger` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `BigInteger` value of the specified property.
See Also:
  - `get(int)`

### getDataObject

DataObject getDataObject(int propertyIndex)
Returns the value of a `DataObject` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `DataObject` value of the specified property.
See Also:
  - `get(int)`

### getDate

Date getDate(int propertyIndex)
Returns the value of a `Date` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `Date` value of the specified property.
See Also:
  - `get(int)`

### getString

String getString(int propertyIndex)
Returns the value of a `String` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `String` value of the specified property.
See Also:
  - `get(int)`

### getList

List getList(int propertyIndex)
Returns the value of a `List` property identified by the specified property index.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `List` value of the specified property.
See Also:
  - `get(int)`

### getSequence

Sequence getSequence(int propertyIndex)
Deprecated.
in 2.1.0.

Parameters:
  `propertyIndex` - the index of the property.
Returns:
  the `Sequence` value of the specified property.
See Also:
  - `Returns the value of a `Sequence` property identified by the specified property index. An implementation may throw an UnsupportedOperationException.`
  - `get(int)`

### setBoolean

void setBoolean(int propertyIndex, boolean value)
Sets the value of a `boolean` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setByte

void setByte(int propertyIndex, byte value)
Sets the value of a `byte` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setChar

void setChar(int propertyIndex, char value)
Sets the value of a `char` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setDouble

void setDouble(int propertyIndex, double value)
Sets the value of a `double` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setFloat

void setFloat(int propertyIndex, float value)
Sets the value of a `float` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setInt

void setInt(int propertyIndex, int value)
Sets the value of a `int` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setLong

void setLong(int propertyIndex, long value)
Sets the value of a `long` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setShort

void setShort(int propertyIndex, short value)
Sets the value of a `short` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setBytes

void setBytes(int propertyIndex, byte[] value)
Sets the value of a `byte[]` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setBigDecimal

void setBigDecimal(int propertyIndex, BigDecimal value)
Sets the value of a `BigDecimal` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setBigInteger

void setBigInteger(int propertyIndex, BigInteger value)
Sets the value of a `BigInteger` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setDataObject

void setDataObject(int propertyIndex, DataObject value)
Sets the value of a `DataObject` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setDate

void setDate(int propertyIndex, Date value)
Sets the value of a `Date` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setString

void setString(int propertyIndex, String value)
Sets the value of a `String` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`

### setList

void setList(int propertyIndex, List value)
Sets the value of a `List` property identified by the specified property index, to the specified value.

Parameters:
  `propertyIndex` - the index of the property.
  `value` - the new value for the property.
See Also:
  - `set(int, Object)`
  - `setList(Property, List)`

### get

Object get(Property property)
Returns the value of the given property of this object.

If the property is `many-valued`, the result will be a `List` and each object in the List will be `an instance of` the property's `type`. Otherwise the result will directly be an instance of the property's type.

Parameters:
  `property` - the property of the value to fetch.
Returns:
  the value of the given property of the object.
See Also:
  - `set(Property, Object)`
  - `unset(Property)`
  - `isSet(Property)`

### set

void set(Property property, Object value)
Sets the value of the given property of the object to the new value.

If the property is `many-valued`, the new value must be a `List` and each object in that list must be `an instance of` the property's `type`; the existing contents are cleared and the contents of the new value are added. Otherwise the new value directly must be an instance of the property's type and it becomes the new value of the property of the object.

Parameters:
  `property` - the property of the value to set.
  `value` - the new value for the property.
See Also:
  - `unset(Property)`
  - `isSet(Property)`
  - `get(Property)`

### isSet

boolean isSet(Property property)
Returns whether the property of the object is considered to be set.

isSet() for many-valued Properties returns true if the List is not empty and false if the List is empty. For single-valued Properties it returns true if the Property has been set() and not unset(), and false otherwise. Any call to set() without a call to unset() will cause isSet() to return true, regardless of the value being set. For example, after calling set(property, property.getDefault()) on a previously unset property, isSet(property) will return true, even though the value of get(property) will be unchanged.

Parameters:
  `property` - the property in question.
Returns:
  whether the property of the object is set.
See Also:
  - `set(Property, Object)`
  - `unset(Property)`
  - `get(Property)`

### unset

void unset(Property property)
Unsets the property of the object.

If the property is `many-valued`, the value must be an `List` and that list is cleared. Otherwise, the value of the property of the object is set to the property's `default value`. The property will no longer be considered `set`.

Parameters:
  `property` - the property in question.
See Also:
  - `isSet(Property)`
  - `set(Property, Object)`
  - `get(Property)`

### getBoolean

boolean getBoolean(Property property)
Returns the value of the specified `boolean` property.

Parameters:
  `property` - the property to get.
Returns:
  the `boolean` value of the specified property.
See Also:
  - `get(Property)`

### getByte

byte getByte(Property property)
Returns the value of the specified `byte` property.

Parameters:
  `property` - the property to get.
Returns:
  the `byte` value of the specified property.
See Also:
  - `get(Property)`

### getChar

char getChar(Property property)
Returns the value of the specified `char` property.

Parameters:
  `property` - the property to get.
Returns:
  the `char` value of the specified property.
See Also:
  - `get(Property)`

### getDouble

double getDouble(Property property)
Returns the value of the specified `double` property.

Parameters:
  `property` - the property to get.
Returns:
  the `double` value of the specified property.
See Also:
  - `get(Property)`

### getFloat

float getFloat(Property property)
Returns the value of the specified `float` property.

Parameters:
  `property` - the property to get.
Returns:
  the `float` value of the specified property.
See Also:
  - `get(Property)`

### getInt

int getInt(Property property)
Returns the value of the specified `int` property.

Parameters:
  `property` - the property to get.
Returns:
  the `int` value of the specified property.
See Also:
  - `get(Property)`

### getLong

long getLong(Property property)
Returns the value of the specified `long` property.

Parameters:
  `property` - the property to get.
Returns:
  the `long` value of the specified property.
See Also:
  - `get(Property)`

### getShort

short getShort(Property property)
Returns the value of the specified `short` property.

Parameters:
  `property` - the property to get.
Returns:
  the `short` value of the specified property.
See Also:
  - `get(Property)`

### getBytes

byte[] getBytes(Property property)
Returns the value of the specified `byte[]` property.

Parameters:
  `property` - the property to get.
Returns:
  the `byte[]` value of the specified property.
See Also:
  - `get(Property)`

### getBigDecimal

BigDecimal getBigDecimal(Property property)
Returns the value of the specified `BigDecimal` property.

Parameters:
  `property` - the property to get.
Returns:
  the `BigDecimal` value of the specified property.
See Also:
  - `get(Property)`

### getBigInteger

BigInteger getBigInteger(Property property)
Returns the value of the specified `BigInteger` property.

Parameters:
  `property` - the property to get.
Returns:
  the `BigInteger` value of the specified property.
See Also:
  - `get(Property)`

### getDataObject

DataObject getDataObject(Property property)
Returns the value of the specified `DataObject` property.

Parameters:
  `property` - the property to get.
Returns:
  the `DataObject` value of the specified property.
See Also:
  - `get(Property)`

### getDate

Date getDate(Property property)
Returns the value of the specified `Date` property.

Parameters:
  `property` - the property to get.
Returns:
  the `Date` value of the specified property.
See Also:
  - `get(Property)`

### getString

String getString(Property property)
Returns the value of the specified `String` property.

Parameters:
  `property` - the property to get.
Returns:
  the `String` value of the specified property.
See Also:
  - `get(Property)`

### getList

List getList(Property property)
Returns the value of the specified `List` property. The List returned contains the current values. Updates through the List interface operate on the current values of the DataObject. Each access returns the same List object.

Parameters:
  `property` - the property to get.
Returns:
  the `List` value of the specified property.
See Also:
  - `get(Property)`

### getSequence

Sequence getSequence(Property property)
Deprecated.
in 2.1.0.

Parameters:
  `property` - the property to get.
Returns:
  the `Sequence` value of the specified property.
See Also:
  - `Returns the value of the specified `Sequence` property. An implementation may throw an UnsupportedOperationException.`
  - `get(Property)`

### setBoolean

void setBoolean(Property property, boolean value)
Sets the value of the specified `boolean` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setByte

void setByte(Property property, byte value)
Sets the value of the specified `byte` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setChar

void setChar(Property property, char value)
Sets the value of the specified `char` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setDouble

void setDouble(Property property, double value)
Sets the value of the specified `double` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setFloat

void setFloat(Property property, float value)
Sets the value of the specified `float` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setInt

void setInt(Property property, int value)
Sets the value of the specified `int` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setLong

void setLong(Property property, long value)
Sets the value of the specified `long` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setShort

void setShort(Property property, short value)
Sets the value of the specified `short` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setBytes

void setBytes(Property property, byte[] value)
Sets the value of the specified `byte[]` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setBigDecimal

void setBigDecimal(Property property, BigDecimal value)
Sets the value of the specified `BigDecimal` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setBigInteger

void setBigInteger(Property property, BigInteger value)
Sets the value of the specified `BigInteger` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setDataObject

void setDataObject(Property property, DataObject value)
Sets the value of the specified `DataObject` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setDate

void setDate(Property property, Date value)
Sets the value of the specified `Date` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setString

void setString(Property property, String value)
Sets the value of the specified `String` property, to the specified value.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### setList

void setList(Property property, List value)
Sets the value of the specified `List` property, to the specified value.

The new value must be a `List` and each object in that list must be `an instance of` the property's `type`; the existing contents are cleared and the contents of the new value are added.

Parameters:
  `property` - the property to set.
  `value` - the new value for the property.
See Also:
  - `set(Property, Object)`

### createDataObject

DataObject createDataObject(String propertyName)
Returns a new `data object` contained by this object using the specified property, which must be a `containment property`. The type of the created object is the `declared type` of the specified property.

Parameters:
  `propertyName` - the name of the specified containment property.
Returns:
  the created data object.
See Also:
  - `createDataObject(String, String, String)`

### createDataObject

DataObject createDataObject(int propertyIndex)
Returns a new `data object` contained by this object using the specified property, which must be a `containment property`. The type of the created object is the `declared type` of the specified property.

Parameters:
  `propertyIndex` - the index of the specified containment property.
Returns:
  the created data object.
See Also:
  - `createDataObject(int, String, String)`

### createDataObject

DataObject createDataObject(Property property)
Returns a new `data object` contained by this object using the specified property, which must be a `containment property`. The type of the created object is the `declared type` of the specified property.

Parameters:
  `property` - the specified containment property.
Returns:
  the created data object.
See Also:
  - `createDataObject(Property, Type)`

### createDataObject

DataObject createDataObject(String propertyName, String namespaceURI, String typeName)
Returns a new `data object` contained by this object using the specified property, which must be a `containment property`. The type of the created object is specified by the packageURI and typeName arguments. The specified type must be a compatible target for the property identified by propertyName.

Parameters:
  `propertyName` - the name of the specified containment property.
  `namespaceURI` - the namespace URI of the package containing the type of object to be created.
  `typeName` - the name of a type in the specified package.
Returns:
  the created data object.
See Also:
  - `createDataObject(String)`
  - `DataGraph.getType(java.lang.String, java.lang.String)`

### createDataObject

DataObject createDataObject(int propertyIndex, String namespaceURI, String typeName)
Returns a new `data object` contained by this object using the specified property, which must be a `containment property`. The type of the created object is specified by the packageURI and typeName arguments. The specified type must be a compatible target for the property identified by propertyIndex.

Parameters:
  `propertyIndex` - the index of the specified containment property.
  `namespaceURI` - the namespace URI of the package containing the type of object to be created.
  `typeName` - the name of a type in the specified package.
Returns:
  the created data object.
See Also:
  - `createDataObject(int)`
  - `DataGraph.getType(java.lang.String, java.lang.String)`

### createDataObject

DataObject createDataObject(Property property, Type type)
Returns a new `data object` contained by this object using the specified property, which must be of `containment type`. The type of the created object is specified by the type argument, which must be a compatible target for the speicifed property.

Parameters:
  `property` - a containment property of this object.
  `type` - the type of object to be created.
Returns:
  the created data object.
See Also:
  - `createDataObject(int)`

### delete

void delete()
Remove this object from its container and then unset all its non-`readOnly` Properties. If this object is contained by a `readOnly` `containment property`, its non-`readOnly` Properties will be unset but the object will not be removed from its container. All DataObjects recursively contained by `containment Properties` will also be deleted.

### getContainer

DataObject getContainer()
Returns the containing `data object` or `null` if there is no container.

Returns:
  the containing data object or `null`.

### getContainmentProperty

Property getContainmentProperty()
Return the Property of the `data object` containing this data object or `null` if there is no container.

Returns:
  the property containing this data object.

### getDataGraph

DataGraph getDataGraph()
Returns the `data graph` for this object or `null` if there isn't one.

Returns:
  the containing data graph or `null`.

### getType

Type getType()
Returns the data object's type.

The type defines the Properties available for reflective access.

Returns:
  the type.

### getSequence

Sequence getSequence()
Returns the `Sequence` for this DataObject. When getType().isSequencedType() == true, the Sequence of a DataObject corresponds to the XML elements representing the values of its Properties. Updates through DataObject and the Lists or Sequences returned from DataObject operate on the same data. When getType().isSequencedType() == false, null is returned.

Returns:
  the `Sequence` or null.

### getInstanceProperties

List getInstanceProperties()
Returns a read-only List of the Properties currently used in this DataObject. This list will contain all of the Properties in getType().getProperties() and any Properties where isSet(property) is true. For example, Properties resulting from the use of open or mixed XML content are present if allowed by the Type. the List does not contain duplicates. The order of the Properties in the List begins with getType().getProperties() and the order of the remaining Properties is determined by the implementation. The same list will be returned unless the DataObject is updated so that the contents of the List change.

Returns:
  the List of Properties currently used in this DataObject.

### getInstanceProperty

Property getInstanceProperty(String propertyName)
Returns the named Property from the current instance properties, or null if not found. The instance properties are getInstanceProperties().

Parameters:
  `propertyName` - the name of the Property
Returns:
  the named Property from the DataObject's current instance properties, or null.

### getProperty

Property getProperty(String propertyName)
Deprecated.
replaced by `getInstanceProperty(String)` in 2.1.0

### getRootObject

DataObject getRootObject()
Returns the root `data object`.

Returns:
  the root data object.

### getChangeSummary

ChangeSummary getChangeSummary()
Returns the ChangeSummary with scope covering this dataObject, or null if there is no ChangeSummary.

Returns:
  the ChangeSummary with scope covering this dataObject, or null.

### detach

void detach()
Removes this DataObject from its container, if any. Same as getContainer().getList(getContainmentProperty()).remove(this) or getContainer().unset(getContainmentProperty()) depending on getContainmentProperty().isMany() respectively.