package org.eclipselabs.spray.generator.graphiti.templates; import com.google.inject.Inject; import org.eclipse.emf.ecore.EClass; 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.NamingExtensions; import org.eclipselabs.spray.mm.spray.Diagram; @SuppressWarnings("all") public class Filter extends FileGenerator { @Inject private NamingExtensions e2; private Diagram diagram; public Diagram setDiagram(final Diagram d) { Diagram _diagram = this.diagram = d; return _diagram; } public StringConcatenation generateBaseFile(final EObject modelElement) { JavaGenFile _javaGenFile = this.getJavaGenFile(); String _baseClassName = _javaGenFile.getBaseClassName(); StringConcatenation _mainFile = this.mainFile(((EClass) modelElement), _baseClassName); return _mainFile; } public StringConcatenation generateExtensionFile(final EObject modelElement) { JavaGenFile _javaGenFile = this.getJavaGenFile(); String _className = _javaGenFile.getClassName(); StringConcatenation _mainExtensionPointFile = this.mainExtensionPointFile(((EClass) modelElement), _className); return _mainExtensionPointFile; } public StringConcatenation mainExtensionPointFile(final EClass eClass, final String className) { StringConcatenation _builder = new StringConcatenation(); StringConcatenation _extensionHeader = this.extensionHeader(this); _builder.append(_extensionHeader, ""); _builder.newLineIfNotEmpty(); _builder.append("package "); String _property_package = GeneratorUtil.property_package(); _builder.append(_property_package, ""); _builder.append(";"); _builder.newLineIfNotEmpty(); _builder.newLine(); _builder.append("import org.eclipse.graphiti.features.IFeatureProvider;"); _builder.newLine(); _builder.newLine(); _builder.append("public class "); _builder.append(className, ""); _builder.append(" extends "); _builder.append(className, ""); _builder.append("Base {"); _builder.newLineIfNotEmpty(); _builder.newLine(); _builder.append("}"); _builder.newLine(); return _builder; } public StringConcatenation mainFile(final EClass eClass, final String className) { StringConcatenation _builder = new StringConcatenation(); StringConcatenation _header = this.header(this); _builder.append(_header, ""); _builder.newLineIfNotEmpty(); _builder.append("package "); String _property_package = GeneratorUtil.property_package(); _builder.append(_property_package, ""); _builder.append(";"); _builder.newLineIfNotEmpty(); _builder.newLine(); _builder.append("import org.eclipse.emf.ecore.EObject;"); _builder.newLine(); _builder.append("import org.eclipse.graphiti.mm.pictograms.PictogramElement;"); _builder.newLine(); _builder.append("import org.eclipse.graphiti.services.Graphiti;"); _builder.newLine(); _builder.append("import org.eclipse.graphiti.ui.platform.AbstractPropertySectionFilter;"); _builder.newLine(); _builder.newLine(); _builder.append("import "); String _javaInterfaceName = this.e2.getJavaInterfaceName(eClass); _builder.append(_javaInterfaceName, ""); _builder.append(";"); _builder.newLineIfNotEmpty(); _builder.newLine(); _builder.append("public class "); _builder.append(className, ""); _builder.append(" extends AbstractPropertySectionFilter {"); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.newLine(); _builder.append(" "); _builder.append("@Override"); _builder.newLine(); _builder.append(" "); _builder.append("protected boolean accept(PictogramElement pe) {"); _builder.newLine(); _builder.append(" "); _builder.append("EObject eObject = Graphiti.getLinkService().getBusinessObjectForLinkedPictogramElement(pe);"); _builder.newLine(); _builder.append(" "); _builder.append("if (eObject instanceof "); String _name = eClass.getName(); _builder.append(_name, " "); _builder.append(") {"); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append("return true;"); _builder.newLine(); _builder.append(" "); _builder.append("}"); _builder.newLine(); _builder.append(" "); _builder.append("return false;"); _builder.newLine(); _builder.append(" "); _builder.append("}"); _builder.newLine(); _builder.append("}"); _builder.newLine(); return _builder; } }