org.objectweb.fractal.julia.control.binding
Class AutoBindingMixin

java.lang.Object
  extended by org.objectweb.fractal.julia.control.binding.AutoBindingMixin

public abstract class AutoBindingMixin
extends Object

A mixin to simplify the management of collection interfaces with composite components.

Requirements


Field Summary
 Component _this_weaveableC
          The weaveableC field required by this mixin.
 
Method Summary
abstract  void _super_bindFc(InterfaceType clientItfType, String clientItfName, Object serverItf)
          The bindFc method overriden by this mixin.
abstract  void _super_unbindFc(InterfaceType clientItfType, String clientItfName)
          The unbindFc method overriden by this mixin.
abstract  void _this_bindFc(String clientItfName, Object serverItf)
          The bindFc method required by this mixin.
 void bindFc(InterfaceType clientItfType, String clientItfName, Object serverItf)
          Calls the overriden method, and then creates a corresponding internal binding, if necessary.
 void unbindFc(InterfaceType clientItfType, String clientItfName)
          Calls the overriden method, and then removes the corresponding internal bindings, if necessary.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_this_weaveableC

public Component _this_weaveableC
The weaveableC field required by this mixin. This field is supposed to reference the Component interface of the component to which this controller object belongs.

Method Detail

bindFc

public void bindFc(InterfaceType clientItfType,
                   String clientItfName,
                   Object serverItf)
            throws NoSuchInterfaceException,
                   IllegalBindingException,
                   IllegalLifeCycleException
Calls the overriden method, and then creates a corresponding internal binding, if necessary. This internal binding is created only if the interface is an external client collection interface "aXXX", and if there is a "model binding" to the internal server collection interface "a".

Parameters:
clientItfType - the type of the clientItfName interface.
clientItfName - the name of a client interface of the component to which this interface belongs.
serverItf - a server interface.
Throws:
NoSuchInterfaceException - if there is no such client interface.
IllegalBindingException - if the binding cannot be created.
IllegalLifeCycleException - if this component has a LifeCycleController interface, but it is not in an appropriate state to perform this operation.

unbindFc

public void unbindFc(InterfaceType clientItfType,
                     String clientItfName)
              throws NoSuchInterfaceException,
                     IllegalBindingException,
                     IllegalLifeCycleException
Calls the overriden method, and then removes the corresponding internal bindings, if necessary. This internal binding is removed only if the interface is an external client collection interface "aXXX", and if there is a "model binding" to the internal server collection interface "a".

Parameters:
clientItfType - the type of the clientItfName interface.
clientItfName - the name of a client interface of the component to which this interface belongs.
Throws:
NoSuchInterfaceException - if there is no such client interface.
IllegalBindingException - if the binding cannot be removed.
IllegalLifeCycleException - if this component has a LifeCycleController interface, but it is not in an appropriate state to perform this operation.

_this_bindFc

public abstract void _this_bindFc(String clientItfName,
                                  Object serverItf)
                           throws NoSuchInterfaceException,
                                  IllegalBindingException,
                                  IllegalLifeCycleException
The bindFc method required by this mixin.

Parameters:
clientItfName - the name of a client interface of the component to which this interface belongs.
serverItf - a server interface.
Throws:
NoSuchInterfaceException - if there is no such client interface.
IllegalBindingException - if the binding cannot be created.
IllegalLifeCycleException - if this component has a LifeCycleController interface, but it is not in an appropriate state to perform this operation.

_super_bindFc

public abstract void _super_bindFc(InterfaceType clientItfType,
                                   String clientItfName,
                                   Object serverItf)
                            throws NoSuchInterfaceException,
                                   IllegalBindingException,
                                   IllegalLifeCycleException
The bindFc method overriden by this mixin.

Parameters:
clientItfType - the type of the clientItfName interface.
clientItfName - the name of a client interface of the component to which this interface belongs.
serverItf - a server interface.
Throws:
NoSuchInterfaceException - if there is no such client interface.
IllegalBindingException - if the binding cannot be created.
IllegalLifeCycleException - if this component has a LifeCycleController interface, but it is not in an appropriate state to perform this operation.

_super_unbindFc

public abstract void _super_unbindFc(InterfaceType clientItfType,
                                     String clientItfName)
                              throws NoSuchInterfaceException,
                                     IllegalBindingException,
                                     IllegalLifeCycleException
The unbindFc method overriden by this mixin.

Parameters:
clientItfType - the type of the clientItfName interface.
clientItfName - the name of a client interface of the component to which this interface belongs.
Throws:
NoSuchInterfaceException - if there is no such client interface.
IllegalBindingException - if the binding cannot be removed.
IllegalLifeCycleException - if this component has a LifeCycleController interface, but it is not in an appropriate state to perform this operation.