org.openmdx.base.accessor.generic.spi
Class DelegatingObject_1

java.lang.Object
  extended by org.openmdx.base.accessor.generic.spi.DelegatingObject_1
All Implemented Interfaces:
Object_1_0
Direct Known Subclasses:
MarshallingObject_1

public class DelegatingObject_1
extends Object
implements Object_1_0

An abstract delegating object


Field Summary
protected  Object_1_0 object
          The object's identity
 
Constructor Summary
protected DelegatingObject_1()
          Constructor
protected DelegatingObject_1(Object_1_0 object)
          Constructor
 
Method Summary
 boolean equals(Object object)
          Indicates whether some other object is "equal to" this one.
 void objAddEventListener(String feature, EventListener listener)
          Add an event listener.
 void objAddToUnitOfWork()
          After this call the object observes unit of work boundaries.
 Object_1_0 objCopy(FilterableMap there, String criteria)
          The copy operation makes a copy of the object.
 Set objDefaultFetchGroup()
          Returns a new set containing the names of the features in the default fetch group.
 boolean objFlush()
          Flush the state of the instance to its provider.
 String objGetClass()
          Returns the object's model class.
 FilterableMap objGetContainer(String feature)
          Get a reference feature.
 EventListener[] objGetEventListeners(String feature, Class listenerType)
          Get event listeners.
 LargeObject_1_0 objGetLargeObject(String feature)
          Get a large object feature
 List objGetList(String feature)
          Get a List attribute.
 Path objGetPath()
          Returns the object's identity.
 Object objGetResourceIdentifier()
          Returns the object's resource identifier
 Set objGetSet(String feature)
          Get a Set attribute.
 SortedMap objGetSparseArray(String feature)
          Get a SparseArray attribute.
 Object objGetValue(String feature)
          Get a feature.
 Structure_1_0 objInvokeOperation(String operation, Structure_1_0 arguments)
          Invokes an operation synchronously.
 Structure_1_0 objInvokeOperationInUnitOfWork(String operation, Structure_1_0 arguments)
          Invokes an operation asynchronously.
 boolean objIsDeleted()
          Tests whether this object has been deleted.
 boolean objIsDirty()
          Tests whether this object is dirty.
 boolean objIsInUnitOfWork()
          Tests whether this object belongs to the current unit of work.
 boolean objIsNew()
          Tests whether this object has been newly made persistent.
 boolean objIsPersistent()
          Tests whether this object is persistent.
 void objMakeVolatile()
          Mark an object as volatile, i.e POST_RELOAD InstanceCallbackEvents may be fired.
 void objMove(FilterableMap there, String criteria)
          The move operation moves the object to the scope of the container passed as the first parameter.
 void objRefresh()
          Refresh the state of the instance from its provider.
 void objRegisterSynchronization(InstanceCallbacks_1_0 synchronization)
          Deprecated.  
 void objRemove()
          Removes an object.
 void objRemoveEventListener(String feature, EventListener listener)
          Remove an event listener.
 void objRemoveFromUnitOfWork()
          After this call the object ignores unit of work boundaries.
 void objSetValue(String feature, Object to)
          Set an attribute's value.
 String toString()
          Returns a string representation of the object.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

object

protected Object_1_0 object
The object's identity

Constructor Detail

DelegatingObject_1

protected DelegatingObject_1(Object_1_0 object)
Constructor


DelegatingObject_1

protected DelegatingObject_1()
Constructor

Method Detail

toString

public String toString()
Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

Overrides:
toString in class Object
Returns:
a string representation of the object.

equals

public boolean equals(Object object)
Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation:

The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any reference values x and y, this method returns true if and only if x and y refer to the same object (x==y has the value true).

Overrides:
equals in class Object
Returns:
true if this object is the same as the obj argument; false otherwise.

objGetClass

public String objGetClass()
                   throws ServiceException
Returns the object's model class.

Specified by:
objGetClass in interface Object_1_0
Returns:
the object's model class
Throws:
ServiceException - if the information is unavailable

objGetPath

public Path objGetPath()
                throws ServiceException
Returns the object's identity.

Specified by:
objGetPath in interface Object_1_0
Returns:
the object's identity; or null for transient objects
Throws:
ServiceException

objGetResourceIdentifier

public Object objGetResourceIdentifier()
Description copied from interface: Object_1_0
Returns the object's resource identifier

Specified by:
objGetResourceIdentifier in interface Object_1_0
Returns:
the object's access path; or null for transient or new objects

objDefaultFetchGroup

public Set objDefaultFetchGroup()
                         throws ServiceException
Returns a new set containing the names of the features in the default fetch group.

The returned set is a copy of the original set, i.e. interceptors are free to modify it before passing it on.

Specified by:
objDefaultFetchGroup in interface Object_1_0
Returns:
the names of the features in the default fetch group
Throws:
ServiceException - if the information is unavailable

objRefresh

public void objRefresh()
                throws ServiceException
Refresh the state of the instance from its provider.

Specified by:
objRefresh in interface Object_1_0
Throws:
ServiceException - if the object can't be synchronized

objMakeVolatile

public void objMakeVolatile()
                     throws ServiceException
Mark an object as volatile, i.e POST_RELOAD InstanceCallbackEvents may be fired.

Specified by:
objMakeVolatile in interface Object_1_0
Throws:
ServiceException - if the object can't be made volatile.

objFlush

public boolean objFlush()
                 throws ServiceException
Flush the state of the instance to its provider.

Specified by:
objFlush in interface Object_1_0
Returns:
true if all attributes could be flushed, false if some attributes contained placeholders
Throws:
ServiceException - NOT_SUPPORTED if the unit of work is optimistic
ServiceException - ILLEGAL_STATE if the object is not persistent
ServiceException - if the object can't be synchronized

objAddToUnitOfWork

public void objAddToUnitOfWork()
                        throws ServiceException
After this call the object observes unit of work boundaries.

This method is idempotent.

Specified by:
objAddToUnitOfWork in interface Object_1_0
Throws:
ServiceException - ILLEGAL_STATE if the object is locked
ServiceException - if the object can't be added to the unit of work for another reason.

objRemoveFromUnitOfWork

public void objRemoveFromUnitOfWork()
                             throws ServiceException
After this call the object ignores unit of work boundaries.

This method is idempotent.

Specified by:
objRemoveFromUnitOfWork in interface Object_1_0
Throws:
ServiceException - ILLEGAL_STATE if the object is dirty.
ServiceException - if the object can't be removed from its unit of work for another reason

objCopy

public Object_1_0 objCopy(FilterableMap there,
                          String criteria)
                   throws ServiceException
The copy operation makes a copy of the object. The copy is located in the scope of the container passed as the first parameter and includes the object's default fetch set.

Specified by:
objCopy in interface Object_1_0
Parameters:
there - the new object's container or null, in which case the object will not belong to any container until it is moved to a container.
criteria - The criteria is used to add the object to the container or null, in which case it is up to the implementation to define the criteria.
Returns:
an object initialized from the existing object.
Throws:
ServiceException - if the copy operation fails.

objMove

public void objMove(FilterableMap there,
                    String criteria)
             throws ServiceException
The move operation moves the object to the scope of the container passed as the first parameter. The object remains valid after move has successfully executed.

Specified by:
objMove in interface Object_1_0
Parameters:
there - the object's new container.
criteria - The criteria is used to move the object to the container or null, in which case it is up to the implementation to define the criteria.
Throws:
ServiceException - ILLEGAL_STATE if the object is persistent.
ServiceException - BAD_PARAMETER if there is null.
ServiceException - if the move operation fails.

objRemove

public void objRemove()
               throws ServiceException
Removes an object.

Neither getValue() nor setValue() calls are allowed after an remove() invocation and isDeleted() will return true unless the object has beeen transient.

Specified by:
objRemove in interface Object_1_0
Throws:
ServiceException - NOT_SUPPORTED If the object refuses to be removed.
ServiceException - if the object can't be removed

objIsDirty

public boolean objIsDirty()
                   throws ServiceException
Tests whether this object is dirty. Instances that have been modified, deleted, or newly made persistent in the current unit of work return true.

Transient instances return false.

Specified by:
objIsDirty in interface Object_1_0
Returns:
true if this instance has been modified in the current unit of work.
Throws:
ServiceException

objIsPersistent

public boolean objIsPersistent()
                        throws ServiceException
Tests whether this object is persistent. Instances that represent persistent objects in the data store return true.

Specified by:
objIsPersistent in interface Object_1_0
Returns:
true if this instance is persistent.
Throws:
ServiceException

objIsNew

public boolean objIsNew()
                 throws ServiceException
Tests whether this object has been newly made persistent. Instances that have been made persistent in the current unit of work return true.

Transient instances return false.

Specified by:
objIsNew in interface Object_1_0
Returns:
true if this instance was made persistent in the current unit of work.
Throws:
ServiceException

objIsDeleted

public boolean objIsDeleted()
                     throws ServiceException
Tests whether this object has been deleted. Instances that have been deleted in the current unit of work return true. Transient instances return false.

Specified by:
objIsDeleted in interface Object_1_0
Returns:
true if this instance was deleted in the current unit of work.
Throws:
ServiceException

objIsInUnitOfWork

public boolean objIsInUnitOfWork()
                          throws ServiceException
Tests whether this object belongs to the current unit of work.

Specified by:
objIsInUnitOfWork in interface Object_1_0
Returns:
true if this instance belongs to the current unit of work.
Throws:
ServiceException

objSetValue

public void objSetValue(String feature,
                        Object to)
                 throws ServiceException
Set an attribute's value.

This method returns a BAD_PARAMETER exception unless the feature is single valued or a stream.

Specified by:
objSetValue in interface Object_1_0
Parameters:
feature - the attribute's name
to - the object.
Throws:
ServiceException - ILLEGAL_STATE if the object is write protected or the feature is a stream modified in the current unit of work.
ServiceException - BAD_PARAMETER if the feature is multi-valued
ServiceException - NOT_SUPPORTED if the object has no such feature
ServiceException - if the object is not accessible

objGetValue

public Object objGetValue(String feature)
                   throws ServiceException
Get a feature.

Specified by:
objGetValue in interface Object_1_0
Parameters:
feature - the feature's name
Returns:
the object representing the feature; or null if the feature's value hasn't been set yet.
Throws:
ServiceException - NOT_SUPPORTED if the object has no such feature
ServiceException - if the object is not accessible

objGetList

public List objGetList(String feature)
                throws ServiceException
Get a List attribute.

This method never returns null as an instance of the requested class is created on demand if it hasn't been set yet.

Specified by:
objGetList in interface Object_1_0
Parameters:
feature - The feature's name.
Returns:
a collection which may be empty but never null.
Throws:
ServiceException - ILLEGAL_STATE if the object is deleted
ServiceException - NOT_SUPPORTED if the object has no such feature
ClassCastException - if the feature's value is not a list

objGetSet

public Set objGetSet(String feature)
              throws ServiceException
Get a Set attribute.

This method never returns null as an instance of the requested class is created on demand if it hasn't been set yet.

Specified by:
objGetSet in interface Object_1_0
Parameters:
feature - The feature's name.
Returns:
a collection which may be empty but never null.
Throws:
ServiceException - ILLEGAL_STATE if the object is deleted
ServiceException - NOT_SUPPORTED if the object has no such feature
ClassCastException - if the feature's value is not a set

objGetSparseArray

public SortedMap objGetSparseArray(String feature)
                            throws ServiceException
Get a SparseArray attribute.

This method never returns null as an instance of the requested class is created on demand if it hasn't been set yet.

Specified by:
objGetSparseArray in interface Object_1_0
Parameters:
feature - The feature's name.
Returns:
a collection which may be empty but never null.
Throws:
ServiceException - ILLEGAL_STATE if the object is deleted
ClassCastException - if the feature's value is not a sparse array
ServiceException - NOT_SUPPORTED if the object has no such feature

objGetLargeObject

public LargeObject_1_0 objGetLargeObject(String feature)
                                  throws ServiceException
Get a large object feature

This method returns a new LargeObject.

Specified by:
objGetLargeObject in interface Object_1_0
Parameters:
feature - The feature's name.
Returns:
a large object which may be empty but never is null.
Throws:
ServiceException - ILLEGAL_STATE if the object is deleted
ClassCastException - if the feature's value is not a large object
ServiceException - BAD_MEMBER_NAME if the object has no such feature

objGetContainer

public FilterableMap objGetContainer(String feature)
                              throws ServiceException
Get a reference feature.

This method never returns null as an instance of the requested class is created on demand if it hasn't been set yet.

Specified by:
objGetContainer in interface Object_1_0
Parameters:
feature - The feature's name.
Returns:
a collection which may be empty but never null.
Throws:
ServiceException - ILLEGAL_STATE if the object is deleted
ClassCastException - if the feature is not a reference
ServiceException - NOT_SUPPORTED if the object has no such feature

objInvokeOperationInUnitOfWork

public Structure_1_0 objInvokeOperationInUnitOfWork(String operation,
                                                    Structure_1_0 arguments)
                                             throws ServiceException
Invokes an operation asynchronously.

Specified by:
objInvokeOperationInUnitOfWork in interface Object_1_0
Parameters:
operation - The operation name
arguments - The operation's arguments object.
Returns:
a structure with the result's values if the accessor is going to populate it after the unit of work has committed or null if the operation's return value(s) will never be available to the accessor.
Throws:
ServiceException - ILLEGAL_STATE if no unit of work is in progress
ServiceException - NOT_SUPPORTED if either asynchronous calls are not supported by the manager or the requested operation is not supportd by the object.
ServiceException - if the invocation fails for another reason

objInvokeOperation

public Structure_1_0 objInvokeOperation(String operation,
                                        Structure_1_0 arguments)
                                 throws ServiceException
Invokes an operation synchronously.

Only query operations can be invoked synchronously unless the unit of work is non-optimistic or committing.

Specified by:
objInvokeOperation in interface Object_1_0
Parameters:
operation - The operation name
arguments - The operation's arguments object.
Returns:
the operation's return object
Throws:
ServiceException - ILLEGAL_STATE if a non-query operation is called in an inappropriate state of the unit of work.
ServiceException - NOT_SUPPORTED if either synchronous calls are not supported by the manager or the requested operation is not supportd by the object.
ServiceException - if a checked exception is thrown by the implementation or the invocation fails for another reason.

objAddEventListener

public void objAddEventListener(String feature,
                                EventListener listener)
                         throws ServiceException
Description copied from interface: Object_1_0
Add an event listener.

Specified by:
objAddEventListener in interface Object_1_0
Parameters:
feature - restrict the listener to this feature; or null if the listener is interested in all features
listener - the event listener to be added

It is implementation dependent whether the feature name is verified or not.

Throws:
ServiceException - BAD_MEMBER_NAME if the object has no such feature or if a non-null feature name is specified for an instance level event

objRemoveEventListener

public void objRemoveEventListener(String feature,
                                   EventListener listener)
                            throws ServiceException
Description copied from interface: Object_1_0
Remove an event listener.

It is implementation dependent whether feature name and listener class are verified.

Specified by:
objRemoveEventListener in interface Object_1_0
Parameters:
feature - the name of the feature that was listened on, or null if the listener is interested in all features
listener - the event listener to be removed
Throws:
ServiceException - BAD_MEMBER_NAME if the object has no such feature or if a non-null feature name is specified for an instance level event

objGetEventListeners

public EventListener[] objGetEventListeners(String feature,
                                            Class listenerType)
                                     throws ServiceException
Description copied from interface: Object_1_0
Get event listeners.

The feature argument is ignored for listeners registered with a null feature argument.

It is implementation dependent whether feature name and listener type are verified.

Specified by:
objGetEventListeners in interface Object_1_0
Parameters:
feature - the name of the feature that was listened on, or null for listeners interested in all features
listenerType - the type of the event listeners to be returned
Returns:
an array of listenerType containing the matching event listeners
Throws:
ServiceException - BAD_MEMBER_NAME if the object has no such feature or if a non-null feature name is specified for an instance level event

objRegisterSynchronization

public void objRegisterSynchronization(InstanceCallbacks_1_0 synchronization)
                                throws ServiceException
Deprecated. 

Register a synchronization object for upward delegation.

Specified by:
objRegisterSynchronization in interface Object_1_0
Parameters:
synchronization - The synchronization object to be registered
Throws:
ServiceException - TOO_MANY_EVENT_LISTENERS if an attempt is made to register more than one synchronization object.


This software is published under the BSD license. Copyright © 2003-2007, OMEX AG, Switzerland, All rights reserved. Use is subject to license terms.