Commit b7246d6e authored by seinturier's avatar seinturier

Update to Juliac 2.0.

parent d9d92db5
......@@ -21,7 +21,7 @@ Contact: Lionel.Seinturier@univ-lille1.fr
Author: Lionel Seinturier
============================================================================
Tinfi 0.3
Tinfi 0.4
---------
Tinfi is a runtime kernel for the SCA component model. Tinfi provides an
......@@ -57,7 +57,8 @@ See http://maven.apache.org for instructions on downloading and using Maven.
2. Introduction
---------------
Tinfi is composed of six modules:
Tinfi is composed of 7 modules:
- all: the superset of all Tinfi Maven artifacts
- compiler: this is the main module which contains the implementation of Tinfi
- examples: sample applications
- mixins: library which implements the control of logic for SCA/Tinfi components
......@@ -114,7 +115,7 @@ follows:
03 <plugin>
04 <groupId>org.objectweb.fractal.fractaladl.juliac.plugin</groupId>
05 <artifactId>maven-juliac-plugin</artifactId>
06 <version>1.3</version>
06 <version>2.0</version>
07 <executions>
08 <execution>
09 <id>juliac-compile</id>
......@@ -125,9 +126,9 @@ follows:
14 </execution>
15 </executions>
16 <configuration>
17 <opt>org.scorware.tinfi.juliac.FCCompCtrlSourceCodeGenerator</opt>
17 <opt>org.scorware.tinfi.juliac.FCOOCtrlSourceCodeGenerator</opt>
18 <srcs>src/main/java</srcs>
19 <mixins>org.scorware.tinfi:mixins:0.3:sources
19 <mixins>org.scorware.tinfi:mixins:0.4:sources
org.objectweb.fractal.julia:julia-mixins:2.5.2:sources</mixins>
20 <types>example.hw.HelloWorld</types>
21 </configuration>
......@@ -178,7 +179,7 @@ To run the conformance tests, type:
7. References
-------------
- Fractal : http://fractal.ow2.org
- Juliac : http://fractal.ow2.org/fractaladl
- Juliac : http://fractal.ow2.org/juliac
- Maven : http://maven.apache.org
- SCA : http://www.osoa.org
......@@ -186,4 +187,4 @@ To run the conformance tests, type:
For any question concerning Tinfi, please contact
Lionel.Seinturier@univ-lille1.fr
Date of creation of this file: June 24, 2007.
Last modified: May 22, 2008.
Last modified: June 29, 2008.
Tinfi 0.4
---------
* move to Juliac 2.0
* adding a tinfi-all artifact
Tinfi 0.3
---------
* new controller for handling policy sets and intents
* API for setting and retrieving custom metadata and annotations
Released on June 30, 2008
http://mail.ow2.org/wws/arc/rntl-sco-2006/2008-06/msg00345.html
Tinfi 0.2.1
-----------
* org.scorware.tinfi.Tinfi is a full-fledged Fractal provider class
......
......@@ -27,17 +27,17 @@
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.objectweb.fractal.fractaladl.juliac</groupId>
<groupId>org.objectweb.fractal.juliac</groupId>
<artifactId>juliac-jdt</artifactId>
<version>${juliac.version}</version>
</dependency>
<dependency>
<groupId>org.objectweb.fractal.fractaladl.juliac</groupId>
<groupId>org.objectweb.fractal.juliac</groupId>
<artifactId>juliac-spoon</artifactId>
<version>${juliac.version}</version>
</dependency>
<dependency>
<groupId>org.objectweb.fractal.fractaladl.juliac</groupId>
<groupId>org.objectweb.fractal.juliac</groupId>
<artifactId>juliac-oo</artifactId>
<version>${juliac.version}</version>
</dependency>
......
......@@ -25,15 +25,16 @@ package org.scorware.tinfi.juliac;
import java.lang.reflect.Modifier;
import org.objectweb.fractal.adl.juliac.MembraneDesc;
import org.objectweb.fractal.adl.juliac.proxy.AbstractProxySourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedMethod;
import org.objectweb.fractal.adl.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.adl.juliac.visit.MethodSourceCodeVisitor;
import org.objectweb.fractal.api.Component;
import org.objectweb.fractal.api.Type;
import org.objectweb.fractal.api.type.InterfaceType;
import org.objectweb.fractal.juliac.Juliac;
import org.objectweb.fractal.juliac.desc.MembraneDesc;
import org.objectweb.fractal.juliac.proxy.AbstractProxyClassGenerator;
import org.objectweb.fractal.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.juliac.ucf.UnifiedMethod;
import org.objectweb.fractal.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.juliac.visit.MethodSourceCodeVisitor;
import org.osoa.sca.RequestContext;
import org.osoa.sca.annotations.EndsConversation;
import org.scorware.tinfi.TinfiComponentCBInterface;
......@@ -47,16 +48,16 @@ import org.scorware.tinfi.osoa.RequestContextImpl;
* @author Lionel Seinturier <Lionel.Seinturier@lifl.fr>
*/
public class CallBackInterfaceSourceCodeGenerator
extends AbstractProxySourceCodeGenerator {
extends AbstractProxyClassGenerator {
public CallBackInterfaceSourceCodeGenerator() {
super();
}
public CallBackInterfaceSourceCodeGenerator(
InterfaceType it, MembraneDesc membraneDesc, boolean mergeable ) {
InterfaceType it, MembraneDesc membraneDesc, boolean mergeable, Juliac jc ) {
super(it, membraneDesc, mergeable);
super(it,membraneDesc,mergeable,jc);
}
/**
......
......@@ -25,13 +25,14 @@ package org.scorware.tinfi.juliac;
import java.lang.reflect.Modifier;
import org.objectweb.fractal.adl.juliac.MembraneDesc;
import org.objectweb.fractal.adl.juliac.proxy.AbstractProxySourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedMethod;
import org.objectweb.fractal.adl.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.adl.juliac.visit.MethodSourceCodeVisitor;
import org.objectweb.fractal.api.type.InterfaceType;
import org.objectweb.fractal.juliac.Juliac;
import org.objectweb.fractal.juliac.desc.MembraneDesc;
import org.objectweb.fractal.juliac.proxy.AbstractProxyClassGenerator;
import org.objectweb.fractal.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.juliac.ucf.UnifiedMethod;
import org.objectweb.fractal.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.juliac.visit.MethodSourceCodeVisitor;
import org.osoa.sca.Conversation;
import org.osoa.sca.ConversationEndedException;
import org.osoa.sca.annotations.Conversational;
......@@ -49,16 +50,16 @@ import org.scorware.tinfi.osoa.ConversationState;
* @author Lionel Seinturier <Lionel.Seinturier@lifl.fr>
*/
public class CallableReferenceSourceCodeGenerator
extends AbstractProxySourceCodeGenerator {
extends AbstractProxyClassGenerator {
public CallableReferenceSourceCodeGenerator() {
super();
}
public CallableReferenceSourceCodeGenerator(
InterfaceType it, MembraneDesc membraneDesc, boolean mergeable ) {
InterfaceType it, MembraneDesc membraneDesc, boolean mergeable, Juliac jc ) {
super(it, membraneDesc, mergeable);
super(it,membraneDesc,mergeable,jc);
}
/**
......
......@@ -25,13 +25,14 @@ package org.scorware.tinfi.juliac;
import java.lang.reflect.Modifier;
import org.objectweb.fractal.adl.juliac.MembraneDesc;
import org.objectweb.fractal.adl.juliac.proxy.InterfaceSourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.proxy.ProxySourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.adl.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.adl.juliac.visit.MethodSourceCodeVisitor;
import org.objectweb.fractal.api.type.InterfaceType;
import org.objectweb.fractal.juliac.Juliac;
import org.objectweb.fractal.juliac.desc.MembraneDesc;
import org.objectweb.fractal.juliac.proxy.InterfaceImplementationClassGenerator;
import org.objectweb.fractal.juliac.proxy.ProxyClassGenerator;
import org.objectweb.fractal.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.juliac.visit.MethodSourceCodeVisitor;
import org.osoa.sca.ServiceReference;
import org.scorware.tinfi.TinfiComponentOutInterface;
......@@ -42,12 +43,12 @@ import org.scorware.tinfi.TinfiComponentOutInterface;
* @author Lionel Seinturier <Lionel.Seinturier@lifl.fr>
*/
public class ClientInterfaceSourceCodeGenerator
extends InterfaceSourceCodeGenerator {
extends InterfaceImplementationClassGenerator {
public ClientInterfaceSourceCodeGenerator(
InterfaceType it, MembraneDesc membraneDesc, boolean mergeable ) {
InterfaceType it, MembraneDesc membraneDesc, boolean mergeable, Juliac jc ) {
super(it, membraneDesc, mergeable );
super(it,membraneDesc,mergeable,jc);
}
/**
......@@ -76,9 +77,9 @@ extends InterfaceSourceCodeGenerator {
Modifier.PUBLIC, null, ServiceReference.class.getName()+"<?>",
"getServiceReference", null, null );
mv.visitBegin();
ProxySourceCodeGenerator sfg =
new ServiceReferenceSourceCodeGenerator(it,membraneDesc,mergeable);
String srclname = sfg.getTargetClassName();
ProxyClassGenerator pcg =
new ServiceReferenceSourceCodeGenerator(it,membraneDesc,mergeable,jc);
String srclname = pcg.getTargetClassName();
mv.visit (" return new ");
mv.visit (srclname);
mv.visit ("<");
......
......@@ -25,18 +25,16 @@ package org.scorware.tinfi.juliac;
import java.io.IOException;
import org.objectweb.fractal.adl.juliac.InitializerSourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.Juliac;
import org.objectweb.fractal.adl.juliac.proxy.AttributeSourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.proxy.InterfaceSourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.proxy.ProxySourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedClassFactory;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedClassFactoryItf;
import org.objectweb.fractal.api.control.AttributeController;
import org.objectweb.fractal.api.type.InterfaceType;
import org.objectweb.fractal.julia.control.attribute.CloneableAttributeController;
import org.objectweb.fractal.julia.type.BasicInterfaceType;
import org.objectweb.fractal.juliac.InitializerClassGenerator;
import org.objectweb.fractal.juliac.Juliac;
import org.objectweb.fractal.juliac.proxy.AttributeControllerClassGenerator;
import org.objectweb.fractal.juliac.proxy.InterfaceImplementationClassGenerator;
import org.objectweb.fractal.juliac.proxy.ProxyClassGenerator;
import org.objectweb.fractal.juliac.ucf.UnifiedClass;
import org.osoa.sca.annotations.Callback;
/**
......@@ -49,16 +47,32 @@ import org.osoa.sca.annotations.Callback;
* @author Lionel Seinturier <Lionel.Seinturier@univ-lille1.fr>
*/
public class FCOOCtrlSourceCodeGenerator
extends org.objectweb.fractal.adl.juliac.opt.oo.FCOOCtrlSourceCodeGenerator {
extends org.objectweb.fractal.juliac.opt.oo.FCOOCtrlSourceCodeGenerator {
public FCOOCtrlSourceCodeGenerator() {
super();
}
// -----------------------------------------------------------------------
// Implementation of the FCSourceCodeGenerator interface
// -----------------------------------------------------------------------
/**
* Initialize this generator.
*
* The initialization process is kept separated from the constructor in
* order to be able to customize the julia.config system property.
*
* @param jc the instance of Juliac using this source code generator
*/
@Override
public void init( Juliac jc ) throws IOException {
super.init(jc);
/*
* Register component interceptor code generators.
*/
Juliac jc = Juliac.get();
jc.putInterceptorSourceCodeGenerator(
"org.scorware.tinfi.asm.SCAContentInterceptorCodeGenerator",
new SCAContentInterceptorSourceCodeGenerator() );
......@@ -67,14 +81,19 @@ extends org.objectweb.fractal.adl.juliac.opt.oo.FCOOCtrlSourceCodeGenerator {
new SCAIntentInterceptorSourceCodeGenerator() );
}
// -----------------------------------------------------------------------
// Implementation of abstract methods defined in super classes
// -----------------------------------------------------------------------
/**
* Return the source code generators for the initializer classes associated
* with this component source code generator.
*/
@Override
protected InitializerSourceCodeGenerator[] getInitializerSourceCodeGenerators() {
protected InitializerClassGenerator[] getInitializerSourceCodeGenerators() {
return
new InitializerSourceCodeGenerator[]{
new InitializerClassGenerator[]{
new InitializerOOCtrlSourceCodeGenerator()
};
}
......@@ -87,13 +106,10 @@ extends org.objectweb.fractal.adl.juliac.opt.oo.FCOOCtrlSourceCodeGenerator {
protected void generateInterfaceImpl( InterfaceType it, String ctrlDesc )
throws IOException {
Juliac jc = Juliac.get();
UnifiedClassFactoryItf ucf = UnifiedClassFactory.get();
String signature = it.getFcItfSignature();
UnifiedClass cl = ucf.create(signature);
UnifiedClass ac = ucf.create(AttributeController.class.getName());
UnifiedClass cac = ucf.create(CloneableAttributeController.class.getName());
UnifiedClass cl = jc.create(signature);
UnifiedClass ac = jc.create(AttributeController.class.getName());
UnifiedClass cac = jc.create(CloneableAttributeController.class.getName());
/*
* If the interface is a business attribute controller interface,
......@@ -104,13 +120,13 @@ extends org.objectweb.fractal.adl.juliac.opt.oo.FCOOCtrlSourceCodeGenerator {
* interfaces which are provided by parametric membranes.
*/
if( ac.isAssignableFrom(cl) && ! cac.isAssignableFrom(cl) ) {
ProxySourceCodeGenerator ascg =
new AttributeSourceCodeGenerator(it,null,false,null);
ProxyClassGenerator ascg =
new AttributeControllerClassGenerator(it,null,false,jc);
jc.generateSourceCode(ascg);
}
InterfaceSourceCodeGeneratorFactory iscgf =
new InterfaceSourceCodeGeneratorFactory(it,ctrlDesc,null);
new InterfaceSourceCodeGeneratorFactory(it,ctrlDesc,null,jc);
if( iscgf.isSCACompBusinessInterface() ) {
......@@ -119,23 +135,23 @@ extends org.objectweb.fractal.adl.juliac.opt.oo.FCOOCtrlSourceCodeGenerator {
*/
// Server (input) interfaces
ProxySourceCodeGenerator scg = iscgf.getInterfaceSourceCodeGenerator();
jc.generateSourceCode(scg);
ProxyClassGenerator pcg = iscgf.getInterfaceSourceCodeGenerator();
jc.generateSourceCode(pcg);
// ServiceReference implementation
scg = new ServiceReferenceSourceCodeGenerator(it,null,false);
jc.generateSourceCode(scg);
pcg = new ServiceReferenceSourceCodeGenerator(it,null,false,jc);
jc.generateSourceCode(pcg);
// CallableReference and input interface implementations for callbacks
Callback annot = cl.getAnnotation(Callback.class);
if( annot != null ) {
Class<?> cbcl = annot.value();
InterfaceType cbit = new BasicInterfaceType("callback",cbcl.getName(),false,false,false);
scg = new CallableReferenceSourceCodeGenerator(cbit,null,false);
jc.generateSourceCode(scg);
pcg = new CallableReferenceSourceCodeGenerator(cbit,null,false,jc);
jc.generateSourceCode(pcg);
scg = new CallBackInterfaceSourceCodeGenerator(cbit,null,false);
jc.generateSourceCode(scg);
pcg = new CallBackInterfaceSourceCodeGenerator(cbit,null,false,jc);
jc.generateSourceCode(pcg);
}
}
else {
......@@ -143,8 +159,8 @@ extends org.objectweb.fractal.adl.juliac.opt.oo.FCOOCtrlSourceCodeGenerator {
/*
* Interfaces of non-SCA components.
*/
ProxySourceCodeGenerator scg =
new InterfaceSourceCodeGenerator(it,null,false);
ProxyClassGenerator scg =
new InterfaceImplementationClassGenerator(it,null,false,jc);
jc.generateSourceCode(scg);
}
}
......
......@@ -23,10 +23,10 @@
package org.scorware.tinfi.juliac;
import org.objectweb.fractal.adl.juliac.Utils;
import org.objectweb.fractal.adl.juliac.proxy.ProxySourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.visit.MethodSourceCodeVisitor;
import org.objectweb.fractal.api.type.InterfaceType;
import org.objectweb.fractal.juliac.Utils;
import org.objectweb.fractal.juliac.proxy.ProxyClassGenerator;
import org.objectweb.fractal.juliac.visit.MethodSourceCodeVisitor;
import org.scorware.tinfi.Factory;
/**
......@@ -39,20 +39,20 @@ import org.scorware.tinfi.Factory;
* @author Lionel Seinturier <Lionel.Seinturier@lifl.fr>
*/
public class InitializerOOCtrlSourceCodeGenerator
extends org.objectweb.fractal.adl.juliac.opt.oo.InitializerOOCtrlSourceCodeGenerator {
extends org.objectweb.fractal.juliac.opt.oo.InitializerOOCtrlClassGenerator {
/**
* Return the source file generator for interfaces.
*/
@Override
protected ProxySourceCodeGenerator getInterfaceSourceCodeGenerator(
protected ProxyClassGenerator getInterfaceSourceCodeGenerator(
InterfaceType it ) {
String ctrlDesc = membraneDesc.getDescriptor();
InterfaceSourceCodeGeneratorFactory iscgf =
new InterfaceSourceCodeGeneratorFactory(it,ctrlDesc,membraneDesc);
ProxySourceCodeGenerator scg = iscgf.getInterfaceSourceCodeGenerator();
return scg;
new InterfaceSourceCodeGeneratorFactory(it,ctrlDesc,membraneDesc,jc);
ProxyClassGenerator pcg = iscgf.getInterfaceSourceCodeGenerator();
return pcg;
}
@Override
......
......@@ -23,10 +23,11 @@
package org.scorware.tinfi.juliac;
import org.objectweb.fractal.adl.juliac.MembraneDesc;
import org.objectweb.fractal.adl.juliac.proxy.InterfaceSourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.proxy.ProxySourceCodeGenerator;
import org.objectweb.fractal.api.type.InterfaceType;
import org.objectweb.fractal.juliac.Juliac;
import org.objectweb.fractal.juliac.desc.MembraneDesc;
import org.objectweb.fractal.juliac.proxy.InterfaceImplementationClassGenerator;
import org.objectweb.fractal.juliac.proxy.ProxyClassGenerator;
import org.scorware.tinfi.Tinfi;
/**
......@@ -39,13 +40,15 @@ public class InterfaceSourceCodeGeneratorFactory {
private InterfaceType it;
private String ctrlDesc;
private MembraneDesc membraneDesc;
private Juliac jc;
public InterfaceSourceCodeGeneratorFactory(
InterfaceType it, String ctrlDesc, MembraneDesc membraneDesc ) {
InterfaceType it, String ctrlDesc, MembraneDesc membraneDesc, Juliac jc ) {
this.it = it;
this.ctrlDesc = ctrlDesc;
this.membraneDesc = membraneDesc;
this.jc = jc;
}
/**
......@@ -63,16 +66,16 @@ public class InterfaceSourceCodeGeneratorFactory {
/**
* Return the source file generator for this factory.
*/
public ProxySourceCodeGenerator getInterfaceSourceCodeGenerator() {
ProxySourceCodeGenerator scg = null;
public ProxyClassGenerator getInterfaceSourceCodeGenerator() {
ProxyClassGenerator scg = null;
if( isSCACompBusinessInterface() ) {
scg =
it.isFcClientItf() ?
new ClientInterfaceSourceCodeGenerator(it,membraneDesc,false) :
new InterfaceSourceCodeGenerator(it,membraneDesc,false);
new ClientInterfaceSourceCodeGenerator(it,membraneDesc,false,jc) :
new InterfaceImplementationClassGenerator(it,membraneDesc,false,jc);
}
else {
scg = new InterfaceSourceCodeGenerator(it,membraneDesc,false);
scg = new InterfaceImplementationClassGenerator(it,membraneDesc,false,jc);
}
return scg;
}
......
......@@ -23,13 +23,14 @@
package org.scorware.tinfi.juliac;
import org.objectweb.fractal.adl.juliac.MembraneDesc;
import org.objectweb.fractal.adl.juliac.proxy.InterceptorSourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedMethod;
import org.objectweb.fractal.adl.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.adl.juliac.visit.MethodSourceCodeVisitor;
import org.objectweb.fractal.api.type.InterfaceType;
import org.objectweb.fractal.juliac.Juliac;
import org.objectweb.fractal.juliac.desc.MembraneDesc;
import org.objectweb.fractal.juliac.proxy.AbstractInterceptorSourceCodeGenerator;
import org.objectweb.fractal.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.juliac.ucf.UnifiedMethod;
import org.objectweb.fractal.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.juliac.visit.MethodSourceCodeVisitor;
import org.osoa.sca.RequestContext;
import org.osoa.sca.annotations.EndsConversation;
import org.scorware.tinfi.TinfiComponentInterceptor;
......@@ -43,22 +44,21 @@ import org.scorware.tinfi.osoa.RequestContextImpl;
* @author Lionel Seinturier <Lionel.Seinturier@lifl.fr>
*/
public class SCAContentInterceptorSourceCodeGenerator
extends InterceptorSourceCodeGenerator {
extends AbstractInterceptorSourceCodeGenerator {
public SCAContentInterceptorSourceCodeGenerator() {
super();
}
public SCAContentInterceptorSourceCodeGenerator(
InterfaceType it, MembraneDesc membraneDesc, boolean mergeable ) {
InterfaceType it, MembraneDesc membraneDesc, boolean mergeable, Juliac jc ) {
super(it, membraneDesc, mergeable);
super(it,membraneDesc,mergeable,jc);
}
/**
* Return the name of the suffix which is appended to generated class names.
*/
@Override
public String getClassNameSuffix() {
return "SCACC";
}
......@@ -67,7 +67,6 @@ extends InterceptorSourceCodeGenerator {
* Return true if some code must be generated by the current source file
* generator.
*/
@Override
public boolean match() {
// Skip control interfaces
......@@ -108,22 +107,10 @@ extends InterceptorSourceCodeGenerator {
}
@Override
public void generateConstructors( ClassSourceCodeVisitor cv, UnifiedClass proxycl ) {
}
@Override
protected void generateMethodInitFcController( MethodSourceCodeVisitor mv, UnifiedClass proxycl ) {
public void generateMethodInitFcController( MethodSourceCodeVisitor mv, UnifiedClass proxycl ) {
mv.visitln(" super.initFcController(ic);");
}
@Override
protected void generateMethodClone( MethodSourceCodeVisitor mv, UnifiedClass proxycl ) {
}
@Override
protected void generateMethodOthers( ClassSourceCodeVisitor cv, UnifiedClass proxycl ) {
}
@Override
public void generateProxyMethodBodyBeforeCode(
MethodSourceCodeVisitor mv, UnifiedClass proxycl, UnifiedMethod proxym ) {
......
......@@ -25,14 +25,15 @@ package org.scorware.tinfi.juliac;
import java.lang.reflect.Modifier;
import org.objectweb.fractal.adl.juliac.MembraneDesc;
import org.objectweb.fractal.adl.juliac.proxy.InterceptorSourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedMethod;
import org.objectweb.fractal.adl.juliac.visit.BlockSourceCodeVisitor;
import org.objectweb.fractal.adl.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.adl.juliac.visit.MethodSourceCodeVisitor;
import org.objectweb.fractal.api.type.InterfaceType;
import org.objectweb.fractal.juliac.Juliac;
import org.objectweb.fractal.juliac.desc.MembraneDesc;
import org.objectweb.fractal.juliac.proxy.AbstractInterceptorSourceCodeGenerator;
import org.objectweb.fractal.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.juliac.ucf.UnifiedMethod;
import org.objectweb.fractal.juliac.visit.BlockSourceCodeVisitor;
import org.objectweb.fractal.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.juliac.visit.MethodSourceCodeVisitor;
import org.scorware.tinfi.TinfiRuntimeException;
import org.scorware.tinfi.control.intent.IntentJoinPoint;
import org.scorware.tinfi.control.intent.IntentJoinPointImpl;
......@@ -47,22 +48,21 @@ import org.scorware.tinfi.control.intent.SCAIntentController;
* @since 0.3
*/
public class SCAIntentInterceptorSourceCodeGenerator
extends InterceptorSourceCodeGenerator {
extends AbstractInterceptorSourceCodeGenerator {
public SCAIntentInterceptorSourceCodeGenerator() {
super();
}
public SCAIntentInterceptorSourceCodeGenerator(
InterfaceType it, MembraneDesc membraneDesc, boolean mergeable ) {
InterfaceType it, MembraneDesc membraneDesc, boolean mergeable, Juliac jc ) {
super(it,membraneDesc,mergeable);
super(it,membraneDesc,mergeable,jc);
}
/**
* Return the name of the suffix which is appended to generated class names.
*/
@Override
public String getClassNameSuffix() {
return "Intent";
}
......@@ -71,7 +71,6 @@ extends InterceptorSourceCodeGenerator {
* Return true if some code must be generated by the current source file
* generator.
*/
@Override
public boolean match() {
// Skip control interfaces
......@@ -107,19 +106,7 @@ extends InterceptorSourceCodeGenerator {
}
@Override
public void generateConstructors( ClassSourceCodeVisitor cv, UnifiedClass proxycl ) {
}
@Override
protected void generateMethodInitFcController( MethodSourceCodeVisitor mv, UnifiedClass proxycl ) {
}
@Override
protected void generateMethodClone( MethodSourceCodeVisitor mv, UnifiedClass proxycl ) {
}
@Override
protected void generateMethodOthers( ClassSourceCodeVisitor cv, UnifiedClass proxycl ) {
public void generateMethodOthers( ClassSourceCodeVisitor cv, UnifiedClass proxycl ) {
/*
* Generate an array constant referencing the methods implemented by the
......
......@@ -25,18 +25,19 @@ package org.scorware.tinfi.juliac;
import java.lang.reflect.Modifier;
import org.objectweb.fractal.adl.juliac.MembraneDesc;
import org.objectweb.fractal.adl.juliac.Utils;
import org.objectweb.fractal.adl.juliac.proxy.AbstractProxySourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.proxy.ProxySourceCodeGenerator;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.adl.juliac.ucf.UnifiedMethod;
import org.objectweb.fractal.adl.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.adl.juliac.visit.MethodSourceCodeVisitor;
import org.objectweb.fractal.api.Component;
import org.objectweb.fractal.api.type.InterfaceType;
import org.objectweb.fractal.julia.ComponentInterface;
import org.objectweb.fractal.julia.type.BasicInterfaceType;
import org.objectweb.fractal.juliac.Juliac;
import org.objectweb.fractal.juliac.Utils;
import org.objectweb.fractal.juliac.desc.MembraneDesc;
import org.objectweb.fractal.juliac.proxy.AbstractProxyClassGenerator;
import org.objectweb.fractal.juliac.proxy.ProxyClassGenerator;
import org.objectweb.fractal.juliac.ucf.UnifiedClass;
import org.objectweb.fractal.juliac.ucf.UnifiedMethod;
import org.objectweb.fractal.juliac.visit.ClassSourceCodeVisitor;
import org.objectweb.fractal.juliac.visit.MethodSourceCodeVisitor;
import org.osoa.sca.CallableReference;
import org.osoa.sca.ConversationEndedException;
import org.osoa.sca.ServiceReference;
......@@ -57,16 +58,16 @@ import org.scorware.tinfi.osoa.ServiceReferenceImpl;
* @author Lionel Seinturier <Lionel.Seinturier@lifl.fr>
*/
public class ServiceReferenceSourceCodeGenerator
extends AbstractProxySourceCodeGenerator {
extends AbstractProxyClassGenerator {
public ServiceReferenceSourceCodeGenerator() {
super();
}
public ServiceReferenceSourceCodeGenerator(