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

java.lang.Object
  extended by org.openmdx.base.accessor.generic.spi.ViewObject_1
All Implemented Interfaces:
Object_1_0, Delegating_1_0, ViewObject_1_0

public class ViewObject_1
extends Object
implements Object_1_0, Delegating_1_0, ViewObject_1_0

An abstract delegating object


Constructor Summary
protected ViewObject_1(ViewConnection_1 factory, Object_1_0 object)
           
protected ViewObject_1(ViewConnection_1 factory, org.openmdx.base.accessor.generic.spi.SinkObject_1 sinkObject)
           
 
Method Summary
 Collection allStates(Boolean invalidated, Boolean deleted)
          Retrieve all states of an object
 void cloneSourceDelegate(XMLGregorianCalendar validFrom, XMLGregorianCalendar validTo)
           
 boolean equals(Object obj)
           
 boolean exists()
          Tells whether there exist underlying valid states
 List getSinkDelegates()
          Retrieve the object's delegates
 Object_1_0 getSourceDelegate()
          Retrieve the object's delegate
 InteractionSpec getViewContext()
           
 int hashCode()
           
protected  boolean isInstanceOfDateState()
           
 boolean isReadable()
          Tells whether one may read the object's features
 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.
 Object objGetDelegate()
           
 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 objSetClass(String objectClass)
          Set the object's model class.
 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, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ViewObject_1

protected ViewObject_1(ViewConnection_1 factory,
                       Object_1_0 object)
                throws ServiceException
Throws:
ServiceException

ViewObject_1

protected ViewObject_1(ViewConnection_1 factory,
                       org.openmdx.base.accessor.generic.spi.SinkObject_1 sinkObject)
                throws ServiceException
Throws:
ServiceException
Method Detail

getSourceDelegate

public Object_1_0 getSourceDelegate()
                             throws ServiceException
Retrieve the object's delegate

Specified by:
getSourceDelegate in interface ViewObject_1_0
Returns:
the object's delegate
Throws:
ServiceException

getSinkDelegates

public List getSinkDelegates()
                      throws ServiceException
Retrieve the object's delegates

Returns:
the object's delegates
Throws:
ServiceException

getViewContext

public InteractionSpec getViewContext()
Specified by:
getViewContext in interface ViewObject_1_0

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 obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

objSetClass

public void objSetClass(String objectClass)
                 throws ServiceException
Set the object's model class.

Specified by:
objSetClass in interface ViewObject_1_0
Parameters:
objectCLass - the object's model class
Throws:
ServiceException

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
ServiceException - if the information is unavailable

isInstanceOfDateState

protected boolean isInstanceOfDateState()
                                 throws ServiceException
Throws:
ServiceException

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 been 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()
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.

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.

objGetDelegate

public Object objGetDelegate()
Specified by:
objGetDelegate in interface Delegating_1_0

allStates

public Collection allStates(Boolean invalidated,
                            Boolean deleted)
                     throws ServiceException
Retrieve all states of an object

Specified by:
allStates in interface ViewObject_1_0
Parameters:
invalidated - tells whether one looks for valid or invalid states
deleted - tells whether one non-deleted or deleted states
Returns:
all states of an object matching the given criteria
Throws:
ServiceException

isReadable

public boolean isReadable()
Description copied from interface: ViewObject_1_0
Tells whether one may read the object's features

Specified by:
isReadable in interface ViewObject_1_0
Returns:
true if the object's features are readable

cloneSourceDelegate

public void cloneSourceDelegate(XMLGregorianCalendar validFrom,
                                XMLGregorianCalendar validTo)
                         throws ServiceException
Specified by:
cloneSourceDelegate in interface ViewObject_1_0
Throws:
ServiceException

exists

public boolean exists()
               throws ServiceException
Tells whether there exist underlying valid states

Specified by:
exists in interface ViewObject_1_0
Returns:
true if there exists at least one underlying valid state
Throws:
ServiceException


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