package org.eclipselabs.spray.generator.graphiti.templates;
import com.google.inject.Inject;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.xtend2.lib.StringConcatenation;
import org.eclipselabs.spray.generator.graphiti.templates.FileGenerator;
import org.eclipselabs.spray.generator.graphiti.templates.JavaGenFile;
import org.eclipselabs.spray.generator.graphiti.util.GeneratorUtil;
import org.eclipselabs.spray.generator.graphiti.util.LayoutExtensions;
import org.eclipselabs.spray.generator.graphiti.util.NamingExtensions;
import org.eclipselabs.spray.mm.spray.Diagram;
import org.eclipselabs.spray.mm.spray.extensions.SprayExtensions;
@SuppressWarnings("all")
public class ExecutableExtensionFactory extends FileGenerator {
@Inject
private SprayExtensions e1;
@Inject
private LayoutExtensions e2;
@Inject
private NamingExtensions naming;
public StringConcatenation generateBaseFile(final EObject modelElement) {
JavaGenFile _javaGenFile = this.getJavaGenFile();
String _className = _javaGenFile.getClassName();
StringConcatenation _mainFile = this.mainFile(((Diagram) modelElement), _className);
return _mainFile;
}
public StringConcatenation mainFile(final Diagram diagram, final String className) {
StringConcatenation _builder = new StringConcatenation();
StringConcatenation _header = this.header(this);
_builder.append(_header, "");
_builder.newLineIfNotEmpty();
_builder.append("package ");
JavaGenFile _javaGenFile = this.getJavaGenFile();
String _packageName = _javaGenFile.getPackageName();
_builder.append(_packageName, "");
_builder.append(";");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append("import com.google.inject.Injector;");
_builder.newLine();
_builder.append("import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;");
_builder.newLine();
_builder.append("import org.osgi.framework.Bundle;");
_builder.newLine();
_builder.append("import ");
String _main_package = GeneratorUtil.main_package();
_builder.append(_main_package, "");
_builder.append(".Activator;");
_builder.newLineIfNotEmpty();
_builder.append("public class ");
_builder.append(className, "");
_builder.append(" extends AbstractGuiceAwareExecutableExtensionFactory {");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append(" ");
_builder.append("@Override");
_builder.newLine();
_builder.append(" ");
_builder.append("protected Bundle getBundle() {");
_builder.newLine();
_builder.append(" ");
_builder.append("return ");
String _activatorSimpleClassName = this.naming.getActivatorSimpleClassName(diagram);
_builder.append(_activatorSimpleClassName, " ");
_builder.append(".getDefault().getBundle();");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.append(" ");
_builder.append("@Override");
_builder.newLine();
_builder.append(" ");
_builder.append("protected Injector getInjector() {");
_builder.newLine();
_builder.append(" ");
_builder.append("return ");
String _activatorSimpleClassName_1 = this.naming.getActivatorSimpleClassName(diagram);
_builder.append(_activatorSimpleClassName_1, " ");
_builder.append(".getDefault().getInjector();");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("}");
_builder.newLine();
_builder.newLine();
_builder.append("}");
_builder.newLine();
_builder.newLine();
return _builder;
}
}