org.objectweb.fractal.cecilia.primitive.thinkMC.components
Class ComponentConstructorCallVisitor

java.lang.Object
  extended by org.objectweb.fractal.task.core.AbstractTaskFactoryUser
      extended by org.objectweb.fractal.cecilia.primitive.thinkMC.components.ComponentConstructorCallVisitor
All Implemented Interfaces:
ComponentVisitor, Visitor<org.objectweb.fractal.adl.components.ComponentContainer>, org.objectweb.fractal.api.control.BindingController

public class ComponentConstructorCallVisitor
extends AbstractTaskFactoryUser
implements ComponentVisitor

Visitor component that builds the code for the call to the constructor/destructor of static component instance.


Nested Class Summary
static class ComponentConstructorCallVisitor.ComponentConstructorCallTask
          Generates the call to the constructor of the component.
static class ComponentConstructorCallVisitor.ComponentDeclarationTask
          Generates the declarations necessary to call the constructor of the component.
static class ComponentConstructorCallVisitor.ComponentDestructorCallTask
          Generates the call to the destructor of the component.
 
Field Summary
 
Fields inherited from class org.objectweb.fractal.task.core.AbstractTaskFactoryUser
TASK_FACTORY_ITF_NAME, taskFactoryItf
 
Constructor Summary
ComponentConstructorCallVisitor()
           
 
Method Summary
protected  org.objectweb.fractal.api.Component createComponentDeclarationTask(org.objectweb.fractal.adl.components.ComponentContainer container)
           
protected  org.objectweb.fractal.api.Component createConstructorCallTask(org.objectweb.fractal.adl.components.ComponentContainer container)
           
protected  org.objectweb.fractal.api.Component createDestructorCallTask(org.objectweb.fractal.adl.components.ComponentContainer container)
           
 org.objectweb.fractal.api.Component visit(java.util.List<org.objectweb.fractal.adl.Node> path, org.objectweb.fractal.adl.components.ComponentContainer container, java.util.Map<java.lang.Object,java.lang.Object> context)
          Visits ComponentContainer nodes and creates a task that writes the source code containing the component data structure definitions.
 
Methods inherited from class org.objectweb.fractal.task.core.AbstractTaskFactoryUser
bindFc, listFc, lookupFc, unbindFc
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ComponentConstructorCallVisitor

public ComponentConstructorCallVisitor()
Method Detail

visit

public org.objectweb.fractal.api.Component visit(java.util.List<org.objectweb.fractal.adl.Node> path,
                                                 org.objectweb.fractal.adl.components.ComponentContainer container,
                                                 java.util.Map<java.lang.Object,java.lang.Object> context)
                                          throws org.objectweb.fractal.adl.ADLException,
                                                 TaskException
Visits ComponentContainer nodes and creates a task that writes the source code containing the component data structure definitions.

Specified by:
visit in interface Visitor<org.objectweb.fractal.adl.components.ComponentContainer>
Parameters:
path - a list containing all the parent nodes of the visited node stating from the root of the AST.
container - the AST Node to be visited.
context - additional parameters.
Returns:
a task component that models the processing to be done on this node.
Throws:
ADLException - if something wrong is found in the AST.
TaskException - if something wrong happens during the instantiation of the task component.

createComponentDeclarationTask

protected org.objectweb.fractal.api.Component createComponentDeclarationTask(org.objectweb.fractal.adl.components.ComponentContainer container)
                                                                      throws TaskException
Throws:
TaskException

createConstructorCallTask

protected org.objectweb.fractal.api.Component createConstructorCallTask(org.objectweb.fractal.adl.components.ComponentContainer container)
                                                                 throws TaskException
Throws:
TaskException

createDestructorCallTask

protected org.objectweb.fractal.api.Component createDestructorCallTask(org.objectweb.fractal.adl.components.ComponentContainer container)
                                                                throws TaskException
Throws:
TaskException


Copyright © 2007-2009 ObjectWeb Consortium. All Rights Reserved.