com.sap.tc.cmi.util

Interface ICMIObservableModelClass

All Superinterfaces:
ICMIModelClass

public interface ICMIObservableModelClass
extends ICMIModelClass

Interface for model classes that can notify registered listeners about changes.

The order in which multiple listeners are notified is not specified. The collection of registered listeners is intended to have set semantic. So even if a listener is registered several times for the same relation role in the same model object, it will receive a single event only.

Furthermore, the register methods are designed to work additive. If a listener is registered consecutively for multiple roles, it will receive change events for all roles that it has been registered for. Similar, the deregister methods work subtractive. If a listener has been registered for some relation roles and it is deregistered for one of these roles, it will no longer receive events for that role, but for any remaining roles it has been registered for.

This interface extends ICMIModelClass instead of ICMIGenericModelClass to allow eventing even for typed models. Note that ICMIModelClass already introduces the concept of metadata which is required for the registration/deregistration methods in this interface as well as for the event object. As ICMIModelClass does not provide generic access to the related objects of a model object, listeners for typed models must hard code their relation role access when needed (for exmaple for complex changes).

Since:
NW Paris, MS3

Type Classification Type Classification:

This interface is part of the Common Model Interface and is intended to be implemented by applications.


Method Summary
 void deregisterRoleListener(ICMIRelationRoleChangeListener listener)
          Removes all relation role registrations that existed for the given role listener.
 void deregisterRoleListener(ICMIRelationRoleChangeListener listener, ICMIRelationRoleInfo roleOfInterest)
          Deregisters a listener from the given relation role.
 void registerRoleListener(ICMIRelationRoleChangeListener listener)
          Registers a relation role change listener for all roles of this model class.
 void registerRoleListener(ICMIRelationRoleChangeListener listener, ICMIRelationRoleInfo roleOfInterest)
          Registers a listener for the given relation role.
 
Methods inherited from interface com.sap.tc.cmi.model.ICMIModelClass
associatedModel, associatedModelClassInfo
 

Method Detail

registerRoleListener

void registerRoleListener(ICMIRelationRoleChangeListener listener)
Registers a relation role change listener for all roles of this model class. The listener will receive an event whenever any of the relation roles in this model class changes.

Parameters:
listener - Listener to be registered

deregisterRoleListener

void deregisterRoleListener(ICMIRelationRoleChangeListener listener)
Removes all relation role registrations that existed for the given role listener. After that, the listener will no longer receive any role change events from this model class.

Parameters:
listener - Listener to be deregistered

registerRoleListener

void registerRoleListener(ICMIRelationRoleChangeListener listener,
                          ICMIRelationRoleInfo roleOfInterest)
Registers a listener for the given relation role. From that time on the listener will receive events for all roles it has been registered for including the given one.

Parameters:
listener - Listener to be registered
roleOfInterest -

deregisterRoleListener

void deregisterRoleListener(ICMIRelationRoleChangeListener listener,
                            ICMIRelationRoleInfo roleOfInterest)
Deregisters a listener from the given relation role. From that time on the listener will no longer receive events when this role changes. This call does not affect registrations for other roles.

Parameters:
listener - Listener to be deregistered
roleOfInterest -
Access Rights

This class can be accessed from:


SC DC
[sap.com] FRAMEWORK [sap.com] tc/cmi
[sap.com] FRAMEWORK [sap.com] tc/cm/ejb/api


Copyright 2010 SAP AG Complete Copyright Notice