
io.joynr.generator.interfaces.InterfaceGenerator Maven / Gradle / Ivy
package io.joynr.generator.interfaces;
import com.google.inject.Inject;
import com.google.inject.name.Named;
import io.joynr.generator.templates.util.NamingUtil;
import io.joynr.generator.util.JavaTemplateFactory;
import io.joynr.generator.util.JoynrJavaGeneratorExtensions;
import java.io.File;
import org.eclipse.xtext.generator.IFileSystemAccess;
import org.eclipse.xtext.xbase.lib.Extension;
import org.franca.core.franca.FInterface;
@SuppressWarnings("all")
public class InterfaceGenerator {
@Inject
@Extension
private JoynrJavaGeneratorExtensions _joynrJavaGeneratorExtensions;
@Inject
@Extension
private NamingUtil _namingUtil;
@Inject
private JavaTemplateFactory templateFactory;
@Inject
@Named("generateProxyCode")
public boolean generateProxyCode;
public void doGenerate(final FInterface serviceInterface, final IFileSystemAccess fsa, final boolean generateVersion) {
String _packagePathWithJoynrPrefix = this._joynrJavaGeneratorExtensions.getPackagePathWithJoynrPrefix(serviceInterface, File.separator, generateVersion);
final String path = (_packagePathWithJoynrPrefix + File.separator);
String serviceName = this._namingUtil.joynrName(serviceInterface);
InterfacesTemplate interfacesTemplate = this.templateFactory.createInterfacesTemplate(serviceInterface);
this._joynrJavaGeneratorExtensions.generateFile(fsa,
((path + serviceName) + ".java"), interfacesTemplate, generateVersion);
if (this.generateProxyCode) {
InterfaceSyncTemplate interfaceSyncTemplate = this.templateFactory.createInterfaceSyncTemplate(serviceInterface);
this._joynrJavaGeneratorExtensions.generateFile(fsa,
((path + serviceName) + "Sync.java"), interfaceSyncTemplate, generateVersion);
InterfaceAsyncTemplate interfaceAsyncTemplate = this.templateFactory.createInterfaceAsyncTemplate(serviceInterface);
this._joynrJavaGeneratorExtensions.generateFile(fsa,
((path + serviceName) + "Async.java"), interfaceAsyncTemplate, generateVersion);
InterfaceFireAndForgetTemplate interfaceFireAndForgetTemplate = this.templateFactory.createInterfaceFireAndForgetTemplate(serviceInterface);
this._joynrJavaGeneratorExtensions.generateFile(fsa,
((path + serviceName) + "FireAndForget.java"), interfaceFireAndForgetTemplate, generateVersion);
InterfaceStatelessAsyncTemplate interfaceStatelessAsyncTemplate = this.templateFactory.createInterfaceStatelessAsyncTemplate(serviceInterface);
this._joynrJavaGeneratorExtensions.generateFile(fsa,
((path + serviceName) + "StatelessAsync.java"), interfaceStatelessAsyncTemplate, generateVersion);
InterfaceStatelessAsyncCallbackTemplate interfaceStatelessAsyncCallbackTemplate = this.templateFactory.createInterfaceStatelessAsyncCallbackTemplate(serviceInterface);
this._joynrJavaGeneratorExtensions.generateFile(fsa,
((path + serviceName) + "StatelessAsyncCallback.java"), interfaceStatelessAsyncCallbackTemplate, generateVersion);
int _size = serviceInterface.getAttributes().size();
boolean _greaterThan = (_size > 0);
if (_greaterThan) {
InterfaceSubscriptionTemplate interfaceSubscriptionTemplate = this.templateFactory.createInterfaceSubscriptionTemplate(serviceInterface);
this._joynrJavaGeneratorExtensions.generateFile(fsa,
((path + serviceName) + "SubscriptionInterface.java"), interfaceSubscriptionTemplate, generateVersion);
}
}
int _size_1 = serviceInterface.getBroadcasts().size();
boolean _greaterThan_1 = (_size_1 > 0);
if (_greaterThan_1) {
InterfaceBroadcastTemplate interfaceBroadcastTemplate = this.templateFactory.createInterfaceBroadcastTemplate(serviceInterface);
this._joynrJavaGeneratorExtensions.generateFile(fsa,
((path + serviceName) + "BroadcastInterface.java"), interfaceBroadcastTemplate, generateVersion);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy