package org.eclipselabs.spray.xtext.ui.wizard.codegen;
import org.eclipse.xtext.generator.IFileSystemAccess;
import org.eclipse.xtext.xbase.lib.StringExtensions;
import org.eclipse.xtext.xtend2.lib.StringConcatenation;
import org.eclipselabs.spray.xtext.ui.wizard.SprayProjectInfo;
@SuppressWarnings("all")
public class SprayModelGenerator {
public void doGenerate(final SprayProjectInfo info, final IFileSystemAccess fsa) {
String _projectName = info.getProjectName();
final String project = _projectName;
String _sprayModelDir = info.getSprayModelDir();
String _operator_plus = StringExtensions.operator_plus(_sprayModelDir, "/");
String _diagramTypeName = info.getDiagramTypeName();
String _operator_plus_1 = StringExtensions.operator_plus(_operator_plus, _diagramTypeName);
String _operator_plus_2 = StringExtensions.operator_plus(_operator_plus_1, ".spray");
String _projectName_1 = info.getProjectName();
StringConcatenation _generateModel = this.generateModel(info);
fsa.generateFile(_operator_plus_2, _projectName_1, _generateModel);
String _sprayModelDir_1 = info.getSprayModelDir();
String _operator_plus_3 = StringExtensions.operator_plus(_sprayModelDir_1, "/");
String _diagramTypeName_1 = info.getDiagramTypeName();
String _operator_plus_4 = StringExtensions.operator_plus(_operator_plus_3, _diagramTypeName_1);
String _operator_plus_5 = StringExtensions.operator_plus(_operator_plus_4, ".properties");
String _projectName_2 = info.getProjectName();
StringConcatenation _generateProperties = this.generateProperties(info);
fsa.generateFile(_operator_plus_5, _projectName_2, _generateProperties);
}
public StringConcatenation generateModel(final SprayProjectInfo info) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("/*************************************************************************************");
_builder.newLine();
_builder.append(" ");
_builder.append("*");
_builder.newLine();
_builder.append(" ");
_builder.append("* Spray diagram definition");
_builder.newLine();
_builder.append(" ");
_builder.append("* ");
_builder.newLine();
_builder.append(" ");
_builder.append("* This file contains the definition of a graphical editor using the Spray Language.");
_builder.newLine();
_builder.append(" ");
_builder.append("* Refer to http://code.google.com/a/eclipselabs.org/p/spray/ for documentation.");
_builder.newLine();
_builder.append(" ");
_builder.append("*");
_builder.newLine();
_builder.append(" ");
_builder.append("* See also ");
String _diagramTypeName = info.getDiagramTypeName();
_builder.append(_diagramTypeName, " ");
_builder.append(".properties to configure generator properties.");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("*************************************************************************************/");
_builder.newLine();
_builder.append("diagram ");
String _diagramTypeName_1 = info.getDiagramTypeName();
_builder.append(_diagramTypeName_1, "");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append("// Add import statements here, e.g.");
_builder.newLine();
_builder.append("// import BusinessDomainDsl.*");
_builder.newLine();
_builder.newLine();
_builder.append("// Add class mappings here. Refer to EClasses here. Don\'t forget to configure a");
_builder.newLine();
_builder.append("// dependency to the plugin defining the EMF metamodel in META-INF/MANIFEST.MF.");
_builder.newLine();
_builder.append("// It is required to have a genmodel for the metamodel. If the Ecore model lies in");
_builder.newLine();
_builder.append("// a workspace project, this project must have the Xtext nature.");
_builder.newLine();
_builder.append("//");
_builder.newLine();
_builder.append("// Example class mapping:");
_builder.newLine();
_builder.append("// class BusinessClass:");
_builder.newLine();
_builder.append("// container ( fill=dark_green ) ");
_builder.newLine();
_builder.append("// {");
_builder.newLine();
_builder.append("// text ( ) { \"<<\"+eClass.name+\">> \" + name};");
_builder.newLine();
_builder.append("// }");
_builder.newLine();
_builder.append("// behavior {");
_builder.newLine();
_builder.append("// // Enable create feature for this class and add it to the palette \"Shapes\"");
_builder.newLine();
_builder.append("// create palette \"Shapes\";");
_builder.newLine();
_builder.append("// }");
_builder.newLine();
_builder.newLine();
return _builder;
}
public StringConcatenation generateProperties(final SprayProjectInfo info) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("pluginId = ");
String _projectName = info.getProjectName();
_builder.append(_projectName, "");
_builder.newLineIfNotEmpty();
_builder.append("mainPackage = ");
String _basePackage = info.getBasePackage();
_builder.append(_basePackage, "");
_builder.newLineIfNotEmpty();
_builder.append("diagramPackage = ");
String _basePackage_1 = info.getBasePackage();
_builder.append(_basePackage_1, "");
_builder.append(".");
String _diagramPackage = info.getDiagramPackage();
_builder.append(_diagramPackage, "");
_builder.newLineIfNotEmpty();
_builder.append("featurePackage = ");
String _basePackage_2 = info.getBasePackage();
_builder.append(_basePackage_2, "");
_builder.append(".");
String _featurePackage = info.getFeaturePackage();
_builder.append(_featurePackage, "");
_builder.newLineIfNotEmpty();
_builder.append("propertyPackage = ");
String _basePackage_3 = info.getBasePackage();
_builder.append(_basePackage_3, "");
_builder.append(".");
String _propertyPackage = info.getPropertyPackage();
_builder.append(_propertyPackage, "");
_builder.newLineIfNotEmpty();
_builder.append("utilPackage = org.eclipselabs.spray.runtime.graphiti.containers");
_builder.newLine();
_builder.newLine();
_builder.append("srcManPath = ");
String _javaMainSrcDir = info.getJavaMainSrcDir();
_builder.append(_javaMainSrcDir, "");
_builder.newLineIfNotEmpty();
_builder.append("srcGenPath = ");
String _javaGenSrcDir = info.getJavaGenSrcDir();
_builder.append(_javaGenSrcDir, "");
_builder.newLineIfNotEmpty();
_builder.append("resourceManPath = ");
String _resourceManDir = info.getResourceManDir();
_builder.append(_resourceManDir, "");
_builder.newLineIfNotEmpty();
_builder.append("resourceGenPath = ");
String _resourceGenDir = info.getResourceGenDir();
_builder.append(_resourceGenDir, "");
_builder.newLineIfNotEmpty();
_builder.append("projectPath = ./");
String _projectName_1 = info.getProjectName();
_builder.append(_projectName_1, "");
_builder.newLineIfNotEmpty();
_builder.append("headerTimestamp = ");
boolean _isCreateTimestamp = info.isCreateTimestamp();
_builder.append(_isCreateTimestamp, "");
_builder.newLineIfNotEmpty();
return _builder;
}
}