diff --git a/com.avaloq.tools.ddk.xtext.scope.generator/.classpath b/com.avaloq.tools.ddk.xtext.scope.generator/.classpath index 0475c5043d..7353dd7ff5 100644 --- a/com.avaloq.tools.ddk.xtext.scope.generator/.classpath +++ b/com.avaloq.tools.ddk.xtext.scope.generator/.classpath @@ -1,7 +1,6 @@ - diff --git a/com.avaloq.tools.ddk.xtext.scope.generator/.project b/com.avaloq.tools.ddk.xtext.scope.generator/.project index 159116daab..98d9806ce4 100644 --- a/com.avaloq.tools.ddk.xtext.scope.generator/.project +++ b/com.avaloq.tools.ddk.xtext.scope.generator/.project @@ -20,11 +20,6 @@ - - org.eclipse.xtext.ui.shared.xtextBuilder - - - net.sf.eclipsecs.core.CheckstyleBuilder @@ -44,7 +39,6 @@ org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature - org.eclipse.xtext.ui.shared.xtextNature net.sourceforge.pmd.eclipse.plugin.pmdNature net.sf.eclipsecs.core.CheckstyleNature edu.umd.cs.findbugs.plugin.eclipse.findbugsNature diff --git a/com.avaloq.tools.ddk.xtext.scope.generator/build.properties b/com.avaloq.tools.ddk.xtext.scope.generator/build.properties index 28b46ccf97..34d2e4d2da 100644 --- a/com.avaloq.tools.ddk.xtext.scope.generator/build.properties +++ b/com.avaloq.tools.ddk.xtext.scope.generator/build.properties @@ -1,5 +1,4 @@ -source.. = src/,\ - xtend-gen/ +source.. = src/ output.. = bin/ bin.includes = META-INF/,\ . diff --git a/com.avaloq.tools.ddk.xtext.scope.generator/src/com/avaloq/tools/ddk/xtext/scope/generator/ScopingFragment2.java b/com.avaloq.tools.ddk.xtext.scope.generator/src/com/avaloq/tools/ddk/xtext/scope/generator/ScopingFragment2.java new file mode 100644 index 0000000000..8ab6924570 --- /dev/null +++ b/com.avaloq.tools.ddk.xtext.scope.generator/src/com/avaloq/tools/ddk/xtext/scope/generator/ScopingFragment2.java @@ -0,0 +1,50 @@ +/******************************************************************************* + * Copyright (c) 2016 Avaloq Group AG and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Avaloq Group AG - initial API and implementation + *******************************************************************************/ + +package com.avaloq.tools.ddk.xtext.scope.generator; + +import org.eclipse.xtext.GrammarUtil; +import org.eclipse.xtext.linking.ILinkingService; +import org.eclipse.xtext.scoping.IScopeProvider; +import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment; +import org.eclipse.xtext.xtext.generator.model.GuiceModuleAccess; +import org.eclipse.xtext.xtext.generator.model.TypeReference; + +import com.avaloq.tools.ddk.xtext.linking.LinkingService; +import com.avaloq.tools.ddk.xtext.scoping.IScopeNameProvider; + + +@SuppressWarnings("nls") +public class ScopingFragment2 extends AbstractXtextGeneratorFragment { + + private static final String RUNTIME_PLUGIN = "com.avaloq.tools.ddk.xtext"; + + @Override + public void generate() { + final String prefix = GrammarUtil.getNamespace(getGrammar()) + ".scoping." + GrammarUtil.getSimpleName(getGrammar()); + new GuiceModuleAccess.BindingFactory() + .addTypeToType(TypeReference.typeRef(IScopeProvider.class), new TypeReference(prefix + "ScopeProvider")) + .addTypeToType(TypeReference.typeRef(IScopeNameProvider.class), new TypeReference(prefix + "ScopeNameProvider")) + .addTypeToType(TypeReference.typeRef(ILinkingService.class), TypeReference.typeRef(LinkingService.class)) + .contributeTo(getLanguage().getRuntimeGenModule()); + + if (getProjectConfig().getRuntime().getManifest() != null) { + getProjectConfig().getRuntime().getManifest().getRequiredBundles().add("org.eclipse.emf.ecore"); + getProjectConfig().getRuntime().getManifest().getRequiredBundles().add(RUNTIME_PLUGIN); + getProjectConfig().getRuntime().getManifest().getExportedPackages().add(GrammarUtil.getNamespace(getGrammar()) + ".scoping"); + getProjectConfig().getRuntime().getManifest().getImportedPackages().add("org.apache.logging.log4j"); + } + + if (getProjectConfig().getEclipsePlugin().getManifest() != null) { + getProjectConfig().getEclipsePlugin().getManifest().getRequiredBundles().add(RUNTIME_PLUGIN); + } + } +} diff --git a/com.avaloq.tools.ddk.xtext.scope.generator/src/com/avaloq/tools/ddk/xtext/scope/generator/ScopingFragment2.xtend b/com.avaloq.tools.ddk.xtext.scope.generator/src/com/avaloq/tools/ddk/xtext/scope/generator/ScopingFragment2.xtend deleted file mode 100644 index 191c0b905d..0000000000 --- a/com.avaloq.tools.ddk.xtext.scope.generator/src/com/avaloq/tools/ddk/xtext/scope/generator/ScopingFragment2.xtend +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2016 Avaloq Group AG and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Avaloq Group AG - initial API and implementation - *******************************************************************************/ - -package com.avaloq.tools.ddk.xtext.scope.generator - -import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment -import org.eclipse.xtext.xtext.generator.model.GuiceModuleAccess - -import static extension org.eclipse.xtext.xtext.generator.model.TypeReference.* -import static extension org.eclipse.xtext.GrammarUtil.* -import org.eclipse.xtext.scoping.IScopeProvider -import com.avaloq.tools.ddk.xtext.scoping.IScopeNameProvider -import org.eclipse.xtext.linking.ILinkingService -import org.eclipse.xtext.xtext.generator.model.TypeReference -import com.avaloq.tools.ddk.xtext.linking.LinkingService - -class ScopingFragment2 extends AbstractXtextGeneratorFragment { - - static val RUNTIME_PLUGIN = "com.avaloq.tools.ddk.xtext" - - override generate() { - val prefix = grammar.namespace + ".scoping." + grammar.simpleName - new GuiceModuleAccess.BindingFactory() - .addTypeToType(IScopeProvider.typeRef, new TypeReference(prefix + "ScopeProvider")) - .addTypeToType(IScopeNameProvider.typeRef, new TypeReference(prefix + "ScopeNameProvider")) - .addTypeToType(ILinkingService.typeRef, LinkingService.typeRef) - .contributeTo(language.runtimeGenModule) - - if (projectConfig.runtime.manifest !== null) { - projectConfig.runtime.manifest.requiredBundles += "org.eclipse.emf.ecore" - projectConfig.runtime.manifest.requiredBundles += RUNTIME_PLUGIN - projectConfig.runtime.manifest.exportedPackages += grammar.namespace + ".scoping" - projectConfig.runtime.manifest.importedPackages += "org.apache.logging.log4j" - } - - if (projectConfig.eclipsePlugin.manifest !== null) { - projectConfig.runtime.manifest.requiredBundles += RUNTIME_PLUGIN - } - } -} \ No newline at end of file diff --git a/com.avaloq.tools.ddk.xtext.scope.generator/xtend-gen/.gitignore b/com.avaloq.tools.ddk.xtext.scope.generator/xtend-gen/.gitignore deleted file mode 100644 index e69de29bb2..0000000000