org.objectweb.fractal.cecilia.primitive.thinkMC.implementations
Class MacroDefinitionVisitor

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

public class MacroDefinitionVisitor
extends AbstractTaskFactoryUser
implements ComponentVisitor

Visitor component that provides the inclusion code of the implementation file for ThinkMC dialect.


Nested Class Summary
protected static class MacroDefinitionVisitor.AbstractImplementationTask
           
static class MacroDefinitionVisitor.ImplementationTask
          Builds definition of implementation source code for the given component node.
static class MacroDefinitionVisitor.ModuleImplementationTask
          Builds definition of implementation source code for the given module of the given component node.
 
Field Summary
 
Fields inherited from class org.objectweb.fractal.task.core.AbstractTaskFactoryUser
TASK_FACTORY_ITF_NAME, taskFactoryItf
 
Constructor Summary
MacroDefinitionVisitor()
           
 
Method Summary
protected  org.objectweb.fractal.api.Component createImplementationTask(org.objectweb.fractal.adl.components.ComponentContainer container, org.objectweb.fractal.adl.implementations.Implementation impl)
           
protected  org.objectweb.fractal.api.Component createModuleImplementationTask(org.objectweb.fractal.adl.components.ComponentContainer container, Include include)
           
 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 includes the implementation file, and that defines some macros that are used in the implementation file.
 
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

MacroDefinitionVisitor

public MacroDefinitionVisitor()
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 includes the implementation file, and that defines some macros that are used in the implementation file.

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.

createImplementationTask

protected org.objectweb.fractal.api.Component createImplementationTask(org.objectweb.fractal.adl.components.ComponentContainer container,
                                                                       org.objectweb.fractal.adl.implementations.Implementation impl)
                                                                throws TaskException
Throws:
TaskException

createModuleImplementationTask

protected org.objectweb.fractal.api.Component createModuleImplementationTask(org.objectweb.fractal.adl.components.ComponentContainer container,
                                                                             Include include)
                                                                      throws TaskException
Throws:
TaskException


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