package com.robotoworks.mechanoid.ops.generator; import com.robotoworks.mechanoid.ops.generator.Extensions; import com.robotoworks.mechanoid.ops.opServiceModel.Model; import com.robotoworks.mechanoid.ops.opServiceModel.ServiceBlock; import com.robotoworks.mechanoid.text.Strings; import org.eclipse.xtend2.lib.StringConcatenation; @SuppressWarnings("all") public class ServiceGenerator { public CharSequence generate(final Model model) { StringConcatenation _builder = new StringConcatenation(); ServiceBlock svc = model.getService(); _builder.newLineIfNotEmpty(); _builder.append("/*"); _builder.newLine(); _builder.append(" "); _builder.append("* Generated by Robotoworks Mechanoid"); _builder.newLine(); _builder.append(" "); _builder.append("*/"); _builder.newLine(); _builder.append("package "); String _packageName = model.getPackageName(); _builder.append(_packageName, ""); _builder.append(";"); _builder.newLineIfNotEmpty(); _builder.newLine(); _builder.append("import com.robotoworks.mechanoid.ops.OperationProcessor;"); _builder.newLine(); _builder.append("import com.robotoworks.mechanoid.ops.OperationService;"); _builder.newLine(); _builder.append("import com.robotoworks.mechanoid.ops.OperationServiceConfiguration;"); _builder.newLine(); _builder.newLine(); _builder.append("import "); String _packageName_1 = model.getPackageName(); _builder.append(_packageName_1, ""); _builder.append("."); String _name = svc.getName(); String _pascalize = Strings.pascalize(_name); _builder.append(_pascalize, ""); _builder.append("Processor;"); _builder.newLineIfNotEmpty(); _builder.newLine(); _builder.append("public abstract class Abstract"); String _name_1 = svc.getName(); String _formatServiceName = Extensions.formatServiceName(_name_1); _builder.append(_formatServiceName, ""); _builder.append(" extends OperationService {"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.newLine(); _builder.append("\t"); _builder.append("public static final OperationServiceConfiguration CONFIG = new "); String _name_2 = svc.getName(); String _formatServiceName_1 = Extensions.formatServiceName(_name_2); _builder.append(_formatServiceName_1, "\t"); _builder.append("Configuration();"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.newLine(); _builder.append("\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append("protected OperationProcessor createProcessor() {"); _builder.newLine(); _builder.append("\t\t"); _builder.append("return new "); String _name_3 = svc.getName(); String _pascalize_1 = Strings.pascalize(_name_3); _builder.append(_pascalize_1, "\t\t"); _builder.append("Processor(this);"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("}"); _builder.newLine(); _builder.append("\t"); _builder.newLine(); _builder.append("\t"); _builder.append("public Abstract"); String _name_4 = svc.getName(); String _formatServiceName_2 = Extensions.formatServiceName(_name_4); _builder.append(_formatServiceName_2, "\t"); _builder.append("(boolean enableLogging) {"); _builder.newLineIfNotEmpty(); _builder.append("\t\t"); _builder.append("super(enableLogging);"); _builder.newLine(); _builder.append("\t"); _builder.append("}"); _builder.newLine(); _builder.append("}"); _builder.newLine(); return _builder; } public CharSequence generateStub(final Model model) { StringConcatenation _builder = new StringConcatenation(); ServiceBlock svc = model.getService(); _builder.newLineIfNotEmpty(); _builder.append("/*"); _builder.newLine(); _builder.append(" "); _builder.append("* Generated by Robotoworks Mechanoid"); _builder.newLine(); _builder.append(" "); _builder.append("*/"); _builder.newLine(); _builder.append("package "); String _packageName = model.getPackageName(); _builder.append(_packageName, ""); _builder.append(";"); _builder.newLineIfNotEmpty(); _builder.newLine(); _builder.append("import "); String _packageName_1 = model.getPackageName(); _builder.append(_packageName_1, ""); _builder.append(".Abstract"); String _name = svc.getName(); String _formatServiceName = Extensions.formatServiceName(_name); _builder.append(_formatServiceName, ""); _builder.append(";"); _builder.newLineIfNotEmpty(); _builder.newLine(); _builder.append("public class "); String _name_1 = svc.getName(); String _formatServiceName_1 = Extensions.formatServiceName(_name_1); _builder.append(_formatServiceName_1, ""); _builder.append(" extends Abstract"); String _name_2 = svc.getName(); String _formatServiceName_2 = Extensions.formatServiceName(_name_2); _builder.append(_formatServiceName_2, ""); _builder.append(" {"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("public "); String _name_3 = svc.getName(); String _formatServiceName_3 = Extensions.formatServiceName(_name_3); _builder.append(_formatServiceName_3, "\t"); _builder.append("() {"); _builder.newLineIfNotEmpty(); _builder.append("\t\t"); _builder.append("super(false);"); _builder.newLine(); _builder.append("\t"); _builder.append("}"); _builder.newLine(); _builder.append("}"); _builder.newLine(); return _builder; } }