WebFlow
Class WebFlowContextOps

WebFlow.WebFlowContextOps

public class WebFlowContextOps

This class manages hookups between properties, so that a bound property change on object X turns into a property set on a related property on object Y.

We do this by associating a PropertyHookup adaptor with each source object that we are interested in. As part of the adaptor we keep track of which target setter methods to call when a given property changes.


Constructor Summary
WebFlowContextOps(org.omg.CORBA.Object peer, WebFlow.configReader configSettings, org.omg.CORBA.ORB orb, java.lang.String ContextName)
          Constructor for a new property hookup adaptor.
WebFlowContextOps(org.omg.CORBA.Object peer, WebFlow.configReader configSettings, org.omg.CORBA.ORB orb, java.lang.String ContextName, WebFlow.moduleFactory factory)
           
 
Method Summary
 void addContext(org.omg.CORBA.Object context, java.lang.String objectId)
           
 void addModule(org.omg.CORBA.Object module, java.lang.String objectId)
           
 void addModuleSlaveServer(org.omg.CORBA.Object module, java.lang.String objectId)
           
 org.omg.CORBA.Object addNewContext(java.lang.String newContextName)
           
 org.omg.CORBA.Object addNewModule(java.lang.String productName)
           
 void addWFServer(java.lang.String name, org.omg.CORBA.Object server)
           
 void attachEvent(org.omg.CORBA.Object source, java.lang.String eventID, org.omg.CORBA.Object target, java.lang.String targetMethod, int flowModel)
           
 void attachPullEvent(org.omg.CORBA.Object source, java.lang.String eventID, org.omg.CORBA.Object target)
           
 void attachPullProperty(org.omg.CORBA.Object source, java.lang.String propertyName, org.omg.CORBA.Object target)
           
 void attachPullVetoableProperty(org.omg.CORBA.Object source, java.lang.String propertyName, org.omg.CORBA.Object target)
           
 void attachPushEvent(org.omg.CORBA.Object source, java.lang.String eventID, org.omg.CORBA.Object target, java.lang.String targetMethod)
           
 void attachPushProperty(org.omg.CORBA.Object source, java.lang.String propertyName, org.omg.CORBA.Object target, java.lang.String targetMethod)
           
 void attachPushVetoableProperty(org.omg.CORBA.Object source, java.lang.String propertyName, org.omg.CORBA.Object target, java.lang.String targetMethod)
           
 void bc_propertyChange(WebFlow.PropertyChangeEvent pce, java.lang.String sourceObjectID)
          subclasses may envelope to monitor child property changes.
 void bc_vetoableChange(WebFlow.PropertyChangeEvent pce, java.lang.String propertyName, java.lang.String sourceObjectID)
          subclasses may envelope to monitor child property changes.
 void cleanUp()
           
 void copyConnectionFromTarget(org.omg.CORBA.Object sourceModule, org.omg.CORBA.Object there)
           
 void copyModuleBinding(org.omg.CORBA.Object sourceModule, org.omg.CORBA.Object there)
           
 java.lang.String createObjectID(java.lang.String productName)
           
 void deactivate()
           
 void destroy()
           
 void detachEvent(org.omg.CORBA.Object source, java.lang.String eventID, org.omg.CORBA.Object target, java.lang.String targetMethod, int flowModel)
           
 void detachPullEvent(org.omg.CORBA.Object source, java.lang.String eventID, org.omg.CORBA.Object target)
           
 void detachPullProperty(org.omg.CORBA.Object source, java.lang.String propertyName, org.omg.CORBA.Object target)
           
 void detachPullVetoableProperty(org.omg.CORBA.Object source, java.lang.String propertyName, org.omg.CORBA.Object target)
           
 void detachPushEvent(org.omg.CORBA.Object source, java.lang.String eventID, org.omg.CORBA.Object target, java.lang.String targetMethod)
           
 void detachPushProperty(org.omg.CORBA.Object source, java.lang.String propertyName, org.omg.CORBA.Object target, java.lang.String targetMethod)
           
 void detachPushVetoableProperty(org.omg.CORBA.Object source, java.lang.String propertyName, org.omg.CORBA.Object target, java.lang.String targetMethod)
           
 java.lang.String extractObjectID(org.omg.CORBA.ServerRequest request)
           
 void filterDeadObjects()
           
 void forwardEvent(org.omg.CORBA.ServerRequest request)
           
 java.util.Vector getAllBindings(org.omg.CORBA.Object target, java.util.Hashtable bindingTable)
           
 java.lang.String[] getAllWFServers()
           
 java.util.Vector getBindings(java.lang.String targetObjectID, java.util.Hashtable bindingTable)
           
 org.omg.CORBA.Object getContext(java.lang.String bindingName)
           
 org.omg.CORBA.Object getContextExtended(java.lang.String bindingName, boolean parent)
           
 org.omg.CORBA.Object getEventObject(org.omg.CORBA.ServerRequest request)
           
 org.omg.CORBA.Object getGatewayProxy()
           
 org.omg.CORBA.Object getKeyedChild(java.lang.String childID)
           
 WebFlow.moduleFactory getMFImpl()
           
 java.lang.String[] getModuleList()
           
 int getMyColor()
           
 org.omg.CORBA.Object getParentContext(java.lang.String bindingName)
           
 org.omg.CORBA.Object getSource(org.omg.CORBA.Object src)
           
 java.util.Hashtable getTargetsByProperty()
          This is the method that gets called when a bound property changes on the source object.
 WebFlow.WebFlowContext getWebFlowContext(org.omg.CORBA.Object product)
           
 org.omg.CORBA.Object getWebFlowContextPeer()
           
 org.omg.CORBA.Object getWFServer(java.lang.String serverName, java.lang.String userName)
           
 org.omg.CORBA.Object insertProxy(java.lang.String serverName)
           
 void insertRemoteServer(java.lang.String serverName, java.lang.String objectID, org.omg.CORBA.Object serverContext)
           
 void invokeEventListener(org.omg.CORBA.Object source, java.lang.String getter)
           
 org.omg.CORBA.Any invokeGetterMethod(org.omg.CORBA.Object source, java.lang.String getter)
           
 void invokePropertyListener(org.omg.CORBA.Object source, java.lang.String propertyAdder)
           
 void invokeSetterMethod(org.omg.CORBA.Object target, java.lang.String setter, org.omg.CORBA.Any newValue)
          Create a property hookup, so that a change to the named bound property on the source object turns into a call on the "setter" method of the given target object.
 void invokeSetterMethod(org.omg.CORBA.Object target, java.lang.String setter, org.omg.CORBA.Object evt)
           
 boolean isAllChildrenDeleted()
           
 void listAdapterValues()
           
 boolean myPrefixEqual(java.lang.String otherID)
           
 boolean pingRemoteObject(org.omg.CORBA.Object proxy)
           
 void propertyChange(WebFlow.PropertyChangeEvent evt)
           
 void propertyChangeAfterVeto(WebFlow.PropertyChangeEvent evt, java.lang.String sourceObjectID, java.lang.String eventID)
           
 org.omg.CORBA.Object[] pullEvents()
           
 void putEvent(org.omg.CORBA.Object evt, HookupTarget sourceHook)
           
 org.omg.CORBA.Object readIOR(org.omg.CORBA.ORB orb, java.lang.String fn)
           
 void removeConnectionFromTarget(org.omg.CORBA.Object targetModule)
           
 void removeContext(org.omg.CORBA.Object node)
           
 void removeLocalChildren()
           
 void removeModule(org.omg.CORBA.Object sourceModule)
           
 void removeModuleProxy(org.omg.CORBA.Object sourceModule, boolean IsProxyRemoved)
           
 void removeMyself()
           
 void removeWFServer(java.lang.String name)
           
 void setChildDeleted(java.lang.String childID)
           
 void setClorAndMFI(int myColor, WebFlow.moduleFactory MFImpl)
           
 void setConfigSettings(WebFlow.configReader configSettings)
           
 void setContextName(java.lang.String ContextName)
           
 void setServerRequest(org.omg.CORBA.ServerRequest request)
           
 void start(org.omg.CORBA.Object factoryObj)
           
 void vetoablePropertyChange(WebFlow.PropertyChangeEvent evt)
           
 void waitUntilSlaveReady(org.omg.CORBA.Object obj)
           
 

Constructor Detail

WebFlowContextOps

public WebFlowContextOps(org.omg.CORBA.Object peer,
                         WebFlow.configReader configSettings,
                         org.omg.CORBA.ORB orb,
                         java.lang.String ContextName)
                  throws java.lang.NullPointerException
Constructor for a new property hookup adaptor.

WebFlowContextOps

public WebFlowContextOps(org.omg.CORBA.Object peer,
                         WebFlow.configReader configSettings,
                         org.omg.CORBA.ORB orb,
                         java.lang.String ContextName,
                         WebFlow.moduleFactory factory)
                  throws java.lang.NullPointerException
Method Detail

deactivate

public void deactivate()

destroy

public void destroy()

setContextName

public void setContextName(java.lang.String ContextName)

getWebFlowContextPeer

public org.omg.CORBA.Object getWebFlowContextPeer()

setConfigSettings

public void setConfigSettings(WebFlow.configReader configSettings)

getContext

public org.omg.CORBA.Object getContext(java.lang.String bindingName)

getParentContext

public org.omg.CORBA.Object getParentContext(java.lang.String bindingName)

getContextExtended

public org.omg.CORBA.Object getContextExtended(java.lang.String bindingName,
                                               boolean parent)

listAdapterValues

public void listAdapterValues()

setServerRequest

public void setServerRequest(org.omg.CORBA.ServerRequest request)

extractObjectID

public java.lang.String extractObjectID(org.omg.CORBA.ServerRequest request)

getMyColor

public int getMyColor()

getSource

public org.omg.CORBA.Object getSource(org.omg.CORBA.Object src)

invokeSetterMethod

public void invokeSetterMethod(org.omg.CORBA.Object target,
                               java.lang.String setter,
                               org.omg.CORBA.Object evt)

invokeSetterMethod

public void invokeSetterMethod(org.omg.CORBA.Object target,
                               java.lang.String setter,
                               org.omg.CORBA.Any newValue)
                        throws WebFlow.event.PropertyVetoException
Create a property hookup, so that a change to the named bound property on the source object turns into a call on the "setter" method of the given target object.

invokeGetterMethod

public org.omg.CORBA.Any invokeGetterMethod(org.omg.CORBA.Object source,
                                            java.lang.String getter)

invokeEventListener

public void invokeEventListener(org.omg.CORBA.Object source,
                                java.lang.String getter)

invokePropertyListener

public void invokePropertyListener(org.omg.CORBA.Object source,
                                   java.lang.String propertyAdder)

getEventObject

public org.omg.CORBA.Object getEventObject(org.omg.CORBA.ServerRequest request)

forwardEvent

public void forwardEvent(org.omg.CORBA.ServerRequest request)

pullEvents

public org.omg.CORBA.Object[] pullEvents()

putEvent

public void putEvent(org.omg.CORBA.Object evt,
                     HookupTarget sourceHook)

attachPushProperty

public void attachPushProperty(org.omg.CORBA.Object source,
                               java.lang.String propertyName,
                               org.omg.CORBA.Object target,
                               java.lang.String targetMethod)

detachPushProperty

public void detachPushProperty(org.omg.CORBA.Object source,
                               java.lang.String propertyName,
                               org.omg.CORBA.Object target,
                               java.lang.String targetMethod)

attachPushVetoableProperty

public void attachPushVetoableProperty(org.omg.CORBA.Object source,
                                       java.lang.String propertyName,
                                       org.omg.CORBA.Object target,
                                       java.lang.String targetMethod)

detachPushVetoableProperty

public void detachPushVetoableProperty(org.omg.CORBA.Object source,
                                       java.lang.String propertyName,
                                       org.omg.CORBA.Object target,
                                       java.lang.String targetMethod)

attachPushEvent

public void attachPushEvent(org.omg.CORBA.Object source,
                            java.lang.String eventID,
                            org.omg.CORBA.Object target,
                            java.lang.String targetMethod)

detachPushEvent

public void detachPushEvent(org.omg.CORBA.Object source,
                            java.lang.String eventID,
                            org.omg.CORBA.Object target,
                            java.lang.String targetMethod)

attachPullProperty

public void attachPullProperty(org.omg.CORBA.Object source,
                               java.lang.String propertyName,
                               org.omg.CORBA.Object target)

detachPullProperty

public void detachPullProperty(org.omg.CORBA.Object source,
                               java.lang.String propertyName,
                               org.omg.CORBA.Object target)

attachPullVetoableProperty

public void attachPullVetoableProperty(org.omg.CORBA.Object source,
                                       java.lang.String propertyName,
                                       org.omg.CORBA.Object target)

detachPullVetoableProperty

public void detachPullVetoableProperty(org.omg.CORBA.Object source,
                                       java.lang.String propertyName,
                                       org.omg.CORBA.Object target)

attachPullEvent

public void attachPullEvent(org.omg.CORBA.Object source,
                            java.lang.String eventID,
                            org.omg.CORBA.Object target)

detachPullEvent

public void detachPullEvent(org.omg.CORBA.Object source,
                            java.lang.String eventID,
                            org.omg.CORBA.Object target)

attachEvent

public void attachEvent(org.omg.CORBA.Object source,
                        java.lang.String eventID,
                        org.omg.CORBA.Object target,
                        java.lang.String targetMethod,
                        int flowModel)

removeMyself

public void removeMyself()

detachEvent

public void detachEvent(org.omg.CORBA.Object source,
                        java.lang.String eventID,
                        org.omg.CORBA.Object target,
                        java.lang.String targetMethod,
                        int flowModel)

removeModule

public void removeModule(org.omg.CORBA.Object sourceModule)

removeModuleProxy

public void removeModuleProxy(org.omg.CORBA.Object sourceModule,
                              boolean IsProxyRemoved)

removeConnectionFromTarget

public void removeConnectionFromTarget(org.omg.CORBA.Object targetModule)

removeLocalChildren

public void removeLocalChildren()

removeContext

public void removeContext(org.omg.CORBA.Object node)

getAllBindings

public java.util.Vector getAllBindings(org.omg.CORBA.Object target,
                                       java.util.Hashtable bindingTable)

getBindings

public java.util.Vector getBindings(java.lang.String targetObjectID,
                                    java.util.Hashtable bindingTable)

copyModuleBinding

public void copyModuleBinding(org.omg.CORBA.Object sourceModule,
                              org.omg.CORBA.Object there)

copyConnectionFromTarget

public void copyConnectionFromTarget(org.omg.CORBA.Object sourceModule,
                                     org.omg.CORBA.Object there)

readIOR

public org.omg.CORBA.Object readIOR(org.omg.CORBA.ORB orb,
                                    java.lang.String fn)

getTargetsByProperty

public java.util.Hashtable getTargetsByProperty()
This is the method that gets called when a bound property changes on the source object. We map the property name to a list of targets and then call each of the target "setter" methods.

getKeyedChild

public org.omg.CORBA.Object getKeyedChild(java.lang.String childID)

setChildDeleted

public void setChildDeleted(java.lang.String childID)

isAllChildrenDeleted

public boolean isAllChildrenDeleted()

createObjectID

public java.lang.String createObjectID(java.lang.String productName)

filterDeadObjects

public void filterDeadObjects()

pingRemoteObject

public boolean pingRemoteObject(org.omg.CORBA.Object proxy)

addNewModule

public org.omg.CORBA.Object addNewModule(java.lang.String productName)

addNewContext

public org.omg.CORBA.Object addNewContext(java.lang.String newContextName)
                                   throws WebFlow.event.PropertyVetoException,
                                          java.lang.NullPointerException

addModule

public void addModule(org.omg.CORBA.Object module,
                      java.lang.String objectId)

addModuleSlaveServer

public void addModuleSlaveServer(org.omg.CORBA.Object module,
                                 java.lang.String objectId)

addContext

public void addContext(org.omg.CORBA.Object context,
                       java.lang.String objectId)

propertyChange

public void propertyChange(WebFlow.PropertyChangeEvent evt)
                    throws WebFlow.event.PropertyVetoException

propertyChangeAfterVeto

public void propertyChangeAfterVeto(WebFlow.PropertyChangeEvent evt,
                                    java.lang.String sourceObjectID,
                                    java.lang.String eventID)
                             throws WebFlow.event.PropertyVetoException

vetoablePropertyChange

public void vetoablePropertyChange(WebFlow.PropertyChangeEvent evt)
                            throws WebFlow.event.PropertyVetoException

bc_vetoableChange

public void bc_vetoableChange(WebFlow.PropertyChangeEvent pce,
                              java.lang.String propertyName,
                              java.lang.String sourceObjectID)
                       throws WebFlow.event.PropertyVetoException
subclasses may envelope to monitor child property changes.

bc_propertyChange

public void bc_propertyChange(WebFlow.PropertyChangeEvent pce,
                              java.lang.String sourceObjectID)
                       throws java.lang.IllegalArgumentException,
                              java.lang.IllegalStateException
subclasses may envelope to monitor child property changes.

addWFServer

public void addWFServer(java.lang.String name,
                        org.omg.CORBA.Object server)

removeWFServer

public void removeWFServer(java.lang.String name)

getAllWFServers

public java.lang.String[] getAllWFServers()

getGatewayProxy

public org.omg.CORBA.Object getGatewayProxy()

cleanUp

public void cleanUp()

getWFServer

public org.omg.CORBA.Object getWFServer(java.lang.String serverName,
                                        java.lang.String userName)

insertRemoteServer

public void insertRemoteServer(java.lang.String serverName,
                               java.lang.String objectID,
                               org.omg.CORBA.Object serverContext)

myPrefixEqual

public boolean myPrefixEqual(java.lang.String otherID)

waitUntilSlaveReady

public void waitUntilSlaveReady(org.omg.CORBA.Object obj)

insertProxy

public org.omg.CORBA.Object insertProxy(java.lang.String serverName)

getWebFlowContext

public WebFlow.WebFlowContext getWebFlowContext(org.omg.CORBA.Object product)

getModuleList

public java.lang.String[] getModuleList()

getMFImpl

public WebFlow.moduleFactory getMFImpl()

start

public void start(org.omg.CORBA.Object factoryObj)

setClorAndMFI

public void setClorAndMFI(int myColor,
                          WebFlow.moduleFactory MFImpl)