EclipseLink 1.0_1.0M2 API Reference - Incubation

org.eclipse.persistence.sdo
Interface ValueStore

All Known Implementing Classes:
DefaultValueStore

public interface ValueStore

Purpose The ValueStore interface exposes the property model in SDO to pluggable implementers that wish to wrap their object model in the SDO API.

The ValueStore interface exposes the properties Map in SDODataObject to extension or replacement. The implementing class must override or extend the get/set/isSet/unset ValueStore functions so that any calls routed through the SDO API are routed through to the underlying Data-Model that ValueStore wraps.

Possible implementers must maintain DataObject integrity which includes containment and changeSummary.

Setup:
Before using the ValueStore interface the type tree must be defined by loading in the XSD schema file that matches the plugged in model if using dynamic classes.

The ValueStore interface enables 3rd party implementers of the SDO API to plug-in their object model in place of the default SDO DataObject interface. The Map like functions set/get and the List like functions isSet/unset are left to the implementation to maintain.
It is the responsibility of the implementation to handle read or read/write capability against the underlying object model. Any access or modification of the pluggable object model done outside of this interface may destabilize the ValueStore state.


Method Summary
 ValueStore copy()
          Get a shallow copy of the original ValueStore.
 java.lang.Object getDeclaredProperty(int propertyIndex)
          Get declared property by index.
 java.lang.Object getOpenContentProperty(Property property)
          Get open-content property by name.
 void initialize(DataObject dataObject)
          Perform any post-instantiation integrity operations that could not be done during ValueStore creation.
 boolean isSetDeclaredProperty(int propertyIndex)
          Get isSet boolean status for declared property by index.
 boolean isSetOpenContentProperty(Property property)
          Get isSet boolean status for open-content property by name.
 void setDeclaredProperty(int propertyIndex, java.lang.Object value)
          Set declared property by index.
 void setManyProperty(Property propertyName, java.lang.Object value)
          Set 1-n many-valued property by name.
 void setOpenContentProperty(Property property, java.lang.Object value)
          Set open-content property by name.
 void unsetDeclaredProperty(int propertyIndex)
          Unset declared property by index position If the property is many-valued, the value must be an List and that list is cleared.
 void unsetOpenContentProperty(Property property)
          Unset open-content property by name If the property is many-valued, the value must be an List and that list is cleared.
 

Method Detail

getDeclaredProperty

java.lang.Object getDeclaredProperty(int propertyIndex)
Get declared property by index.
Returns the value of the given property of this object.
When the returned object is wrapped within an SDODataObject, The SDODataObject wrapper is always the same object instance for a particular property.

If the property is many-valued, the result will be a ListWrapper 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:
propertyIndex - the property index of the value to fetch.
Returns:
the value of the given property of the object.
See Also:
#setDeclaredProperty(Property, Object), #unsetDeclaredProperty(Property), #isSetDeclaredProperty(Property)

getOpenContentProperty

java.lang.Object getOpenContentProperty(Property property)
Get open-content property by name.
Returns the value of the given property of this object.
When the returned object is wrapped within an SDODataObject, The SDODataObject wrapper is always the same object instance for a particular property.

If the property is many-valued, the result will be a ListWrapper 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 to fetch the value of.
Returns:
the value of the given property of the object.
See Also:
setOpenContentProperty(Property, Object), unsetOpenContentProperty(Property), isSetOpenContentProperty(Property)

setDeclaredProperty

void setDeclaredProperty(int propertyIndex,
                         java.lang.Object value)
Set declared property by index.
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:
propertyIndex - the property name of the value to set.
value - the new value for the property.
See Also:
#unsetDeclaredProperty(Property), #isSetDeclaredProperty(Property), #getDeclaredProperty(Property)

setOpenContentProperty

void setOpenContentProperty(Property property,
                            java.lang.Object value)
Set open-content property by name.
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 to be set.
value - the new value for the property.
See Also:
unsetOpenContentProperty(Property), isSetOpenContentProperty(Property), getOpenContentProperty(Property)

setManyProperty

void setManyProperty(Property propertyName,
                     java.lang.Object value)
Set 1-n many-valued property by name.
This function is implemented by ValueStores that maintain separate wrapped-caching and storage of property values.

Parameters:
propertyName -
value -

isSetDeclaredProperty

boolean isSetDeclaredProperty(int propertyIndex)
Get isSet boolean status for declared property by index.
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:

Parameters:
propertyIndex - the property index in question.
Returns:
whether the property of the object is set.
See Also:
#setDeclaredProperty(String, Object), #unsetDeclaredProperty(String), #getDeclaredProperty(String)

isSetOpenContentProperty

boolean isSetOpenContentProperty(Property property)
Get isSet boolean status for open-content property by name.
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:

Parameters:
property - the property in question.
Returns:
whether the property of the object is set.
See Also:
#setOpenContentProperty(String, Object), #unsetOpenContentProperty(String), #getOpenContentProperty(String)

unsetDeclaredProperty

void unsetDeclaredProperty(int propertyIndex)
Unset declared property by index position

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:
propertyIndex -
See Also:
isSetDeclaredProperty(int), setDeclaredProperty(int, Object), getDeclaredProperty(int)

unsetOpenContentProperty

void unsetOpenContentProperty(Property property)
Unset open-content property by name

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 -
See Also:
isSetDeclaredProperty(int), setDeclaredProperty(int, Object), getDeclaredProperty(int)

initialize

void initialize(DataObject dataObject)
Perform any post-instantiation integrity operations that could not be done during ValueStore creation.
Since the dataObject reference passed in may be bidirectional or self-referencing - we cannot set this variable until the dataObject itself is finished instantiation - hence the 2-step initialization.

Parameters:
dataObject -

copy

ValueStore copy()
Get a shallow copy of the original ValueStore. Changes made to the copy must not impact the original ValueStore

Returns:
ValueStore

EclipseLink 1.0_1.0M2 API Reference - Incubation