org.ow2.jasmine.jade.reflex.factory
Class ReflexGenericFactoryMixin

java.lang.Object
  extended by org.ow2.jasmine.jade.reflex.factory.ReflexGenericFactoryMixin
All Implemented Interfaces:
org.objectweb.fractal.api.factory.GenericFactory, org.objectweb.fractal.deployment.local.api.GenericInstallingFactory, GenericFactoryNotification

public abstract class ReflexGenericFactoryMixin
extends java.lang.Object
implements org.objectweb.fractal.api.factory.GenericFactory, org.objectweb.fractal.deployment.local.api.GenericInstallingFactory, GenericFactoryNotification

Provides an implementation of the GenericFactory interface which manages the causal connection with the dual (i.e meta/execution) level : any newFcInstance operation performed on the current factory is forwarded to the factory of the dual level.

Author:
Fabienne Boyer contributor : Julien Legrand More informations about this class: - define this class as a mixin which can be added to any GenericFactory in order to make it reflexive - A "reflexive" factory is a standard factory except that it has a specific additionnal controller (ReflexController) which allows to get the reference of its dual factory - A "reflexive" factory ensures that for any component it creates, it notifies its dual factory such that a dual component is automatically created. - the level of the current factory is set according to the reflex-fractal.level system property - at instanciation time: - the factory automatically register itself under the naming service (by using as name the concatenation of the name given by the reflex-fractal.name system property and the level), - the factory automatically connects itself with its dual factory

Field Summary
 org.objectweb.fractal.api.control.BindingController _this_weaveableBC
          The weaveableBC field required by this mixin.
 org.objectweb.fractal.api.Component _this_weaveableC
          The weaveableC field required by this mixin.
 ReflexController _this_weaveableOptRC
          The weaveableOptRC field required by this mixin.
 
Method Summary
abstract  void _super_initFcController(org.objectweb.fractal.julia.InitializationContext ic)
           
abstract  org.objectweb.fractal.api.Component _super_newFcInstance(org.objectweb.fractal.api.Type type, java.lang.Object controllerDesc, java.lang.Object contentDesc)
          The newFcInstance method overriden by this mixin.
abstract  org.objectweb.fractal.api.Component _super_newFcInstance(org.objectweb.fractal.api.Type type, java.lang.Object controllerDesc, java.lang.Object contentDesc, org.objectweb.fractal.deployment.local.api.PackageDescription pkg)
           
 void initFcController(org.objectweb.fractal.julia.InitializationContext ic)
           
 org.objectweb.fractal.api.Component newFcInstance(org.objectweb.fractal.api.Type type, java.lang.Object controllerDesc, java.lang.Object contentDesc)
          Calls the overriden newFcInstance method and then notifies the dual factory of the newFcInstance operation.
 org.objectweb.fractal.api.Component newFcInstance(org.objectweb.fractal.api.Type type, java.lang.Object controllerDesc, java.lang.Object contentDesc, org.objectweb.fractal.deployment.local.api.PackageDescription pkg)
           
 org.objectweb.fractal.api.Component newFcInstanceNotification(org.objectweb.fractal.api.Type type, java.lang.Object controllerDesc, java.lang.Object contentDesc)
          Calls the overriden newFcInstance method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.objectweb.fractal.deployment.local.api.GenericInstallingFactory
getFcLoaderForComponent, undeployFcComponent
 

Field Detail

_this_weaveableC

public org.objectweb.fractal.api.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.


_this_weaveableBC

public org.objectweb.fractal.api.control.BindingController _this_weaveableBC
The weaveableBC field required by this mixin. This field is supposed to reference the BindingController interface of the component to which this controller object belongs.


_this_weaveableOptRC

public ReflexController _this_weaveableOptRC
The weaveableOptRC field required by this mixin. This field is supposed to reference the ReflexController interface of the component to which this controller object belongs.

Method Detail

initFcController

public void initFcController(org.objectweb.fractal.julia.InitializationContext ic)
                      throws org.objectweb.fractal.api.factory.InstantiationException
Throws:
org.objectweb.fractal.api.factory.InstantiationException

newFcInstance

public org.objectweb.fractal.api.Component newFcInstance(org.objectweb.fractal.api.Type type,
                                                         java.lang.Object controllerDesc,
                                                         java.lang.Object contentDesc)
                                                  throws org.objectweb.fractal.api.factory.InstantiationException
Calls the overriden newFcInstance method and then notifies the dual factory of the newFcInstance operation.

Specified by:
newFcInstance in interface org.objectweb.fractal.api.factory.GenericFactory
Parameters:
type - an arbitrary component type.
controllerDesc - a description of the controller part of the component to be created. This description is implementation specific. If it is null then a "default" controller part will be used.
contentDesc - a description of the content part of the component to be created. This description is implementation specific. It may be null to create component with an empty initial content. It may also be, in Java, the fully qualified name of a Java class, to create primitive components.
Returns:
the Component interface of the created component.
Throws:
org.objectweb.fractal.api.factory.InstantiationException - if the component cannot be created.

newFcInstance

public org.objectweb.fractal.api.Component newFcInstance(org.objectweb.fractal.api.Type type,
                                                         java.lang.Object controllerDesc,
                                                         java.lang.Object contentDesc,
                                                         org.objectweb.fractal.deployment.local.api.PackageDescription pkg)
                                                  throws org.objectweb.fractal.api.factory.InstantiationException
Specified by:
newFcInstance in interface org.objectweb.fractal.deployment.local.api.GenericInstallingFactory
Throws:
org.objectweb.fractal.api.factory.InstantiationException

newFcInstanceNotification

public org.objectweb.fractal.api.Component newFcInstanceNotification(org.objectweb.fractal.api.Type type,
                                                                     java.lang.Object controllerDesc,
                                                                     java.lang.Object contentDesc)
                                                              throws org.objectweb.fractal.api.factory.InstantiationException
Calls the overriden newFcInstance method.

Specified by:
newFcInstanceNotification in interface GenericFactoryNotification
Parameters:
type - an arbitrary component type.
controllerDesc - a description of the controller part of the component to be created. This description is implementation specific. If it is null then a "default" controller part will be used.
contentDesc - a description of the content part of the component to be created. This description is implementation specific. It may be null to create component with an empty initial content. It may also be, in Java, the fully qualified name of a Java class, to create primitive components.
Returns:
the Component interface of the created component.
Throws:
org.objectweb.fractal.api.factory.InstantiationException - if the component cannot be created.

_super_newFcInstance

public abstract org.objectweb.fractal.api.Component _super_newFcInstance(org.objectweb.fractal.api.Type type,
                                                                         java.lang.Object controllerDesc,
                                                                         java.lang.Object contentDesc)
                                                                  throws org.objectweb.fractal.api.factory.InstantiationException
The newFcInstance method overriden by this mixin.

Parameters:
type - an arbitrary component type.
controllerDesc - a description of the controller part of the component to be created. This description is implementation specific. If it is null then a "default" controller part will be used.
contentDesc - a description of the content part of the component to be created. This description is implementation specific. It may be null to create component with an empty initial content. It may also be, in Java, the fully qualified name of a Java class, to create primitive components.
Returns:
the Component interface of the created component.
Throws:
org.objectweb.fractal.api.factory.InstantiationException - if the component cannot be created.

_super_newFcInstance

public abstract org.objectweb.fractal.api.Component _super_newFcInstance(org.objectweb.fractal.api.Type type,
                                                                         java.lang.Object controllerDesc,
                                                                         java.lang.Object contentDesc,
                                                                         org.objectweb.fractal.deployment.local.api.PackageDescription pkg)
                                                                  throws org.objectweb.fractal.api.factory.InstantiationException
Throws:
org.objectweb.fractal.api.factory.InstantiationException

_super_initFcController

public abstract void _super_initFcController(org.objectweb.fractal.julia.InitializationContext ic)
                                      throws org.objectweb.fractal.api.factory.InstantiationException
Throws:
org.objectweb.fractal.api.factory.InstantiationException


Copyright © 2008 OW2 Consortium. All Rights Reserved.