All Downloads are FREE. Search and download functionalities are using the official Maven repository.

etc.reflex-julia.cfg Maven / Gradle / Ivy

# -----------------------------------------------------------------------------
# CONTROLLER DESCRIPTORS
# -----------------------------------------------------------------------------

# reflex-controller interface
# mainly allows :
# - to set/get the reference of the dual component 
#    associated to the current component
# - to get the level of a component (exec / meta)

(reflex-controller-itf
  (reflex-controller org.ow2.jasmine.jade.reflex.api.control.ReflexController)
)

#=========================================================================
# Additionnal controllers interfaces for reflexive components
#=========================================================================

# Notifications interfaces
# perform a control operation without forwarding the operation to the dual level 

(generic-factory-notification-itf
  (generic-factory-notification org.ow2.jasmine.jade.reflex.api.factory.GenericFactoryNotification)
)

(binding-notification-controller-itf
  (binding-notification-controller org.ow2.jasmine.jade.reflex.api.control.BindingNotificationController)
)


(content-notification-controller-itf
  (content-notification-controller org.ow2.jasmine.jade.reflex.api.control.ContentNotificationController)
)

(lifecycle-notification-controller-itf
  (lifecycle-notification-controller org.ow2.jasmine.jade.reflex.api.control.LifeCycleNotificationController)
)

(name-notification-controller-itf
  (name-notification-controller org.ow2.jasmine.jade.reflex.api.control.NameNotificationController)
)

# -----------------------------------------------------------------------------
# CONTROLLER OBJECTS
#
# each definition must be an object descriptor
# -----------------------------------------------------------------------------

#=========================================================================
# Additionnal controllers implementation for reflexive components
# Principle : a reflexive component is associated to "reflexive" controllers
# Reflexive controllers are standard Julia controllers, except that they 
# notify the dual level (meta / exec) of any operation they perform.
# The notification of the dual level is managed by a specific
# mixin.
#=========================================================================

# ReflexController implementation

(reflex-controller-impl
  ((org.objectweb.fractal.julia.asm.MixinClassGenerator
    ReflexControllerImpl
    org.objectweb.fractal.julia.BasicControllerMixin
    org.objectweb.fractal.julia.control.name.UseNameControllerMixin
    org.objectweb.fractal.julia.UseComponentMixin
    org.ow2.jasmine.jade.reflex.control.BasicReflexControllerMixin
  ))
)

# BindingController implementation (for primitive components without content)
# the following implementation manages the connection with the SR service

(reflex-primitive-binding-controller-impl
  ((org.objectweb.fractal.julia.asm.MixinClassGenerator
    ReflexPrimitiveBindingControllerImpl
    
    # Allows to associate the controller to a component
    org.objectweb.fractal.julia.BasicControllerMixin
    
    # Provides a basic implementation of the Binding controller interface
    org.objectweb.fractal.julia.control.binding.BasicBindingControllerMixin
    
    # to initialize the BasicBindingControllerMixin from the component's type:
    org.objectweb.fractal.julia.control.binding.TypeBasicBindingMixin
    
    # to check some basic pre conditions (interface not already bound, ...)
    org.objectweb.fractal.julia.UseComponentMixin
    
    ###
    org.objectweb.fractal.julia.control.binding.CheckBindingMixin
    
    # to check type related constraints for bindings:
    org.objectweb.fractal.julia.control.binding.TypeBindingMixin
    
    # to check content related constraints for bindings:
    org.objectweb.fractal.julia.control.content.UseSuperControllerMixin
    org.objectweb.fractal.julia.control.binding.ContentBindingMixin
    
    # to check lifecycle related constraints for bindings:
    org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin
    org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin
    
    # notify the reverse-binding controller of the bound component
    org.ow2.jasmine.jade.fractal.julia.control.binding.BindingWithReverseBindingControllerNotifierMixin
        
    # use the reflex controller to notify the dual level
    org.ow2.jasmine.jade.reflex.control.UseReflexControllerMixin
    org.objectweb.fractal.julia.control.name.UseNameControllerMixin
    org.ow2.jasmine.jade.reflex.control.binding.ReflexBindingMixin
  ))
)

# BindingController implementation (reflex primitive have no content)
# the following implementation manages the connection with the SR service
(reflex-container-binding-controller-impl
  'reflex-primitive-binding-controller-impl
)

# BindingController implementation (for composite components)
# the following implementation manages the connection with the SR service

(reflex-composite-binding-controller-impl
  ((org.objectweb.fractal.julia.asm.MixinClassGenerator
    ReflexCompositeBindingControllerImpl
    
    # Allows to associate the controller to a component
    org.objectweb.fractal.julia.BasicControllerMixin
    
    # Provides a basic implementation of the Binding controller interface
    org.objectweb.fractal.julia.control.binding.BasicBindingControllerMixin
    
    # to initialize the BasicBindingControllerMixin from the component's type:
    org.objectweb.fractal.julia.control.binding.TypeBasicBindingMixin
    
    # to check some basic pre conditions (interface not already bound, ...)
    org.objectweb.fractal.julia.UseComponentMixin
    
    ###
    org.objectweb.fractal.julia.control.binding.CheckBindingMixin
    
    # to check type related constraints for bindings:
    org.objectweb.fractal.julia.control.binding.TypeBindingMixin
    
    # to check content related constraints for bindings:
    org.objectweb.fractal.julia.control.content.UseSuperControllerMixin
    org.objectweb.fractal.julia.control.binding.ContentBindingMixin
    
    # to check lifecycle related constraints for bindings:
    org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin
    org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin
    
    # to manage the getFcItfImpl links of the Interface objects:
    # choose one of ComponentBindingMixin and OptimizedCompositeBindingMixin
    # (the last one creates and updates shortcuts links when possible)
    org.objectweb.fractal.julia.control.content.UseContentControllerMixin
    
    org.objectweb.fractal.julia.control.binding.CompositeBindingMixin
    #org.objectweb.fractal.julia.control.binding.OptimizedCompositeBindingMixin

	# notify the reverse-binding controller of the bound component
    org.ow2.jasmine.jade.fractal.julia.control.binding.BindingWithReverseBindingControllerNotifierMixin
        
    # use the reflex controller to notify the dual level
    org.ow2.jasmine.jade.reflex.control.UseReflexControllerMixin
    org.objectweb.fractal.julia.control.name.UseNameControllerMixin
    org.ow2.jasmine.jade.reflex.control.binding.ReflexBindingMixin
  ))
)

# ContentController implementation
# the following implementation manages the connection with the SR service

(reflex-content-controller-impl
  ((org.objectweb.fractal.julia.asm.MixinClassGenerator
    ReflexContentControllerImpl
    
    # Allows to associate the controller to a component
    org.objectweb.fractal.julia.BasicControllerMixin
    org.objectweb.fractal.julia.UseComponentMixin
    org.objectweb.fractal.julia.control.content.BasicContentControllerMixin
    
    # to check some basic pre conditions, and to prevent hierarchy cycles:
    org.objectweb.fractal.julia.control.content.CheckContentMixin
    
    # to check type related constraints in getFcInternalInterface:
    org.objectweb.fractal.julia.control.content.TypeContentMixin
    
    # to check binding locality related constraints in removeFcSubComponent:
    org.objectweb.fractal.julia.control.content.BindingContentMixin
    
    # to check lifecycle related constraints:
    org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin
    org.objectweb.fractal.julia.control.content.LifeCycleContentMixin
    
    # to notify sub components when they are added or removed from this component:
    org.objectweb.fractal.julia.control.content.SuperContentMixin
    
    # use the reflex controller to notify the dual level
    org.ow2.jasmine.jade.reflex.control.UseReflexControllerMixin
    org.ow2.jasmine.jade.reflex.control.content.ReflexContentMixin
  ))
)


# LifeCycleController implementation (for primitive or composite components)
# the following implementation manages the connection with the SR service

(reflex-lifecycle-controller-impl
  ((org.objectweb.fractal.julia.asm.MixinClassGenerator
    ReflexLifeCycleControllerImpl
    org.objectweb.fractal.julia.BasicControllerMixin
    org.objectweb.fractal.julia.UseComponentMixin
    org.objectweb.fractal.julia.control.lifecycle.BasicLifeCycleCoordinatorMixin
    org.objectweb.fractal.julia.control.lifecycle.BasicLifeCycleControllerMixin
    
    # to check that mandatory client interfaces are bound in startFc:
    org.objectweb.fractal.julia.control.lifecycle.TypeLifeCycleMixin
    
    # to notify the encapsulated component (if present) when its state changes:
    org.objectweb.fractal.julia.control.lifecycle.ContainerLifeCycleMixin
    
    # use the reflex controller to notify the dual level
    org.ow2.jasmine.jade.reflex.control.UseReflexControllerMixin
    org.ow2.jasmine.jade.reflex.control.lifecycle.ReflexLifeCycleMixin
  ))
)

# LifeCycleController implementation (for composite components only)
# the following implementation manages the connection with the SR service

(reflex-composite-lifecycle-controller-impl
  ((org.objectweb.fractal.julia.asm.MixinClassGenerator
    ReflexCompositeLifeCycleControllerImpl
    
    org.objectweb.fractal.julia.BasicControllerMixin
    org.objectweb.fractal.julia.UseComponentMixin
    org.objectweb.fractal.julia.control.lifecycle.BasicLifeCycleCoordinatorMixin
    org.objectweb.fractal.julia.control.lifecycle.OptimizedLifeCycleControllerMixin
    
    # to check that mandatory client interfaces are bound in startFc:
    org.objectweb.fractal.julia.control.lifecycle.TypeLifeCycleMixin
    
    # use the reflex controller to notify the dual level
    org.ow2.jasmine.jade.reflex.control.UseReflexControllerMixin
    org.ow2.jasmine.jade.reflex.control.lifecycle.ReflexLifeCycleMixin
  ))
)

# NameController implementation
# the following implementation manages the connection with the SR service

(reflex-name-controller-impl
  ((org.objectweb.fractal.julia.asm.MixinClassGenerator
    ReflexNameControllerImpl
    
    org.objectweb.fractal.julia.BasicControllerMixin
    org.objectweb.fractal.julia.control.name.BasicNameControllerMixin
    
   # use the reflex controller to notify the dual level
    org.ow2.jasmine.jade.reflex.control.UseReflexControllerMixin
    org.ow2.jasmine.jade.reflex.control.name.ReflexNameMixin
  ))
)

# -----------------------------------------------------------------------------
# CONTROLLER DESCRIPTORS
# -----------------------------------------------------------------------------





© 2015 - 2025 Weber Informatics LLC | Privacy Policy