
io.joynr.generator.cpp.inprocess.InProcessGenerator Maven / Gradle / Ivy
package io.joynr.generator.cpp.inprocess;
import com.google.inject.Inject;
import io.joynr.generator.cpp.inprocess.InterfaceInProcessConnectorCPPTemplate;
import io.joynr.generator.cpp.inprocess.InterfaceInProcessConnectorHTemplate;
import io.joynr.generator.cpp.util.JoynrCppGeneratorExtensions;
import java.io.File;
import org.eclipse.emf.common.util.EList;
import org.eclipse.xtext.generator.IFileSystemAccess;
import org.eclipse.xtext.xbase.lib.Extension;
import org.franca.core.franca.FInterface;
import org.franca.core.franca.FModel;
@SuppressWarnings("all")
public class InProcessGenerator {
@Inject
@Extension
private JoynrCppGeneratorExtensions _joynrCppGeneratorExtensions;
@Inject
private InterfaceInProcessConnectorHTemplate interfaceInProcessConnectorH;
@Inject
private InterfaceInProcessConnectorCPPTemplate interfaceInProcessConnectorCPP;
public void doGenerate(final FModel model, final IFileSystemAccess sourceFileSystem, final IFileSystemAccess headerFileSystem, final String sourceContainerPath, final String headerContainerPath) {
EList _interfaces = model.getInterfaces();
for (final FInterface serviceInterface : _interfaces) {
{
String _packageSourceDirectory = this._joynrCppGeneratorExtensions.getPackageSourceDirectory(serviceInterface);
String _plus = (sourceContainerPath + _packageSourceDirectory);
final String sourcepath = (_plus + File.separator);
String _packagePathWithJoynrPrefix = this._joynrCppGeneratorExtensions.getPackagePathWithJoynrPrefix(serviceInterface, File.separator);
String _plus_1 = (headerContainerPath + _packagePathWithJoynrPrefix);
final String headerpath = (_plus_1 + File.separator);
final String serviceName = this._joynrCppGeneratorExtensions.joynrName(serviceInterface);
String _plus_2 = (headerpath + serviceName);
String _plus_3 = (_plus_2 + "InProcessConnector.h");
CharSequence _generate = this.interfaceInProcessConnectorH.generate(serviceInterface);
String _string = _generate.toString();
headerFileSystem.generateFile(_plus_3, _string);
String _plus_4 = (sourcepath + serviceName);
String _plus_5 = (_plus_4 + "InProcessConnector.cpp");
CharSequence _generate_1 = this.interfaceInProcessConnectorCPP.generate(serviceInterface);
String _string_1 = _generate_1.toString();
sourceFileSystem.generateFile(_plus_5, _string_1);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy