diff --git a/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/StandardLanguage.java b/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/StandardLanguage.java
new file mode 100644
index 0000000000..db77ae042a
--- /dev/null
+++ b/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/StandardLanguage.java
@@ -0,0 +1,454 @@
+/**
+ * Copyright (c) 2015, 2020 itemis AG (http://www.itemis.eu) and others.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+package org.eclipse.xtext.xtext.generator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2;
+import org.eclipse.xtext.xtext.generator.ecore.EMFGeneratorFragment2;
+import org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2;
+import org.eclipse.xtext.xtext.generator.formatting.Formatter2Fragment2;
+import org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2;
+import org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2;
+import org.eclipse.xtext.xtext.generator.index.ResourceDescriptionStrategyFragment;
+import org.eclipse.xtext.xtext.generator.junit.JUnitFragment;
+import org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2;
+import org.eclipse.xtext.xtext.generator.resourceFactory.ResourceFactoryFragment2;
+import org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2;
+import org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2;
+import org.eclipse.xtext.xtext.generator.types.TypesGeneratorFragment2;
+import org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2;
+import org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2;
+import org.eclipse.xtext.xtext.generator.ui.fileWizard.TemplateFileWizardFragment;
+import org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2;
+import org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2;
+import org.eclipse.xtext.xtext.generator.ui.outline.QuickOutlineFragment2;
+import org.eclipse.xtext.xtext.generator.ui.projectWizard.TemplateProjectWizardFragment;
+import org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2;
+import org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2;
+import org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2;
+import org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2;
+import org.eclipse.xtext.xtext.generator.web.WebIntegrationFragment;
+import org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2;
+import org.eclipse.xtext.xtext.generator.xbase.XtypeGeneratorFragment2;
+
+import com.google.inject.Injector;
+
+/**
+ * This specialization of the {@link XtextGeneratorLanguage} adds all the
+ * standard generator fragments that are commonly used for Xtext languages. This
+ * eliminates the need to list all these fragments explicitly in the workflow
+ * file. More fragments can be added as required, but the standard fragments
+ * cannot be removed. However, most of these fragments disable themselves
+ * automatically if they are not applicable, e.g. the
+ * {@link WebIntegrationFragment} does not generate anything if the web project
+ * is disabled in the project configuration.
+ *
+ *
+ * The configuration for individual fragments can be made with the corresponding
+ * properties. For example, write
+ *
+ *
+ * formatter = formatting.Formatter2Fragment2 {
+ * generateStub = true
+ * }
+ *
+ *
+ * to enable stub generation for the formatter.
+ *
+ *
+ * @author Sven Efftinge - Initial contribution and API
+ * @author Holger Schill
+ * @author Arne Deutsch - Add projectWizard and fileWizard, deprecate
+ * 'newProjectWizardForEclipse'
+ * @noextend This class should not be extended by clients.
+ */
+public class StandardLanguage extends XtextGeneratorLanguage {
+
+ private static final Logger LOG = Logger.getLogger(StandardLanguage.class);
+
+ private GrammarAccessFragment2 grammarAccess = new GrammarAccessFragment2();
+
+ private EMFGeneratorFragment2 emfGenerator = new EMFGeneratorFragment2();
+
+ private SerializerFragment2 serializer = new SerializerFragment2();
+
+ private ResourceFactoryFragment2 resourceFactoryFragment = new ResourceFactoryFragment2();
+
+ private XtextAntlrGeneratorFragment2 parserGenerator = new XtextAntlrGeneratorFragment2();
+
+ private ValidatorFragment2 validator = new ValidatorFragment2();
+
+ private ImportNamespacesScopingFragment2 scopeProvider = new ImportNamespacesScopingFragment2();
+
+ /**
+ * @since 2.14
+ */
+ private ResourceDescriptionStrategyFragment resourceDescriptionStrategy = new ResourceDescriptionStrategyFragment();
+
+ private QualifiedNamesFragment2 qualifiedNamesProvider = new QualifiedNamesFragment2();
+
+ private BuilderIntegrationFragment2 builder = new BuilderIntegrationFragment2();
+
+ private GeneratorFragment2 generator = new GeneratorFragment2();
+
+ private Formatter2Fragment2 formatter = new Formatter2Fragment2();
+
+ private LabelProviderFragment2 labelProvider = new LabelProviderFragment2();
+
+ private QuickOutlineFragment2 quickOutline = new QuickOutlineFragment2();
+
+ private OutlineTreeProviderFragment2 outline = new OutlineTreeProviderFragment2();
+
+ private QuickfixProviderFragment2 quickFixProvider = new QuickfixProviderFragment2();
+
+ private ContentAssistFragment2 contentAssist = new ContentAssistFragment2();
+
+ private JUnitFragment junitSupport = new JUnitFragment();
+
+ private RefactorElementNameFragment2 renameRefactoring = new RefactorElementNameFragment2();
+
+ private TypesGeneratorFragment2 commonTypesSupport = new TypesGeneratorFragment2();
+
+ private XbaseGeneratorFragment2 xbaseSupport = new XbaseGeneratorFragment2();
+
+ private XtypeGeneratorFragment2 xtypeSupport = new XtypeGeneratorFragment2();
+
+ private CodetemplatesGeneratorFragment2 codeTemplates = new CodetemplatesGeneratorFragment2();
+
+ private CompareFragment2 compareEditor = new CompareFragment2();
+
+ private WebIntegrationFragment webSupport = new WebIntegrationFragment();
+
+ @Deprecated
+ private org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2 newProjectWizardForEclipse = new org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2();
+
+ private TemplateProjectWizardFragment projectWizard = new TemplateProjectWizardFragment();
+
+ private TemplateFileWizardFragment fileWizard = new TemplateFileWizardFragment();
+
+ public StandardLanguage() {
+ try {
+ getClass().getClassLoader().loadClass("org.eclipse.xtext.xbase.XbaseRuntimeModule");
+ addReferencedResource("platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel");
+ } catch (ClassNotFoundException e) {
+ StandardLanguage.LOG.info("Skipping registration of Xbase genmodel. Xbase is not on the classpath.");
+ }
+ }
+
+ @Override
+ public void initialize(Injector injector) {
+ if (!formatter.getGenerateStub().isSet()) {
+ formatter.setGenerateStub(false);
+ }
+ if (!commonTypesSupport.getOnlyEnabledIfGrammarIsUsed().isSet()) {
+ commonTypesSupport.setOnlyEnabledIfGrammarIsUsed(true);
+ }
+ if (!webSupport.getFramework().isSet()) {
+ webSupport.setFramework("Ace");
+ }
+ if (!webSupport.getGenerateServlet().isSet()) {
+ webSupport.setGenerateServlet(true);
+ }
+ if (!webSupport.getGenerateJettyLauncher().isSet()) {
+ webSupport.setGenerateJettyLauncher(true);
+ }
+ if (!webSupport.getGenerateHtmlExample().isSet()) {
+ webSupport.setGenerateHtmlExample(true);
+ }
+ super.initialize(injector);
+ }
+
+ @Override
+ protected List extends IXtextGeneratorFragment> getImplicitFragments() {
+ List fragments = new ArrayList<>();
+ for (IXtextGeneratorFragment fragment : super.getImplicitFragments()) {
+ fragments.add(fragment);
+ }
+ nullSafeAdd(fragments, grammarAccess);
+ nullSafeAdd(fragments, emfGenerator);
+ nullSafeAdd(fragments, serializer);
+ nullSafeAdd(fragments, resourceFactoryFragment);
+ nullSafeAdd(fragments, parserGenerator);
+ nullSafeAdd(fragments, validator);
+ nullSafeAdd(fragments, scopeProvider);
+ nullSafeAdd(fragments, resourceDescriptionStrategy);
+ nullSafeAdd(fragments, qualifiedNamesProvider);
+ nullSafeAdd(fragments, builder);
+ nullSafeAdd(fragments, generator);
+ nullSafeAdd(fragments, formatter);
+ nullSafeAdd(fragments, labelProvider);
+ nullSafeAdd(fragments, quickOutline);
+ nullSafeAdd(fragments, outline);
+ nullSafeAdd(fragments, quickFixProvider);
+ nullSafeAdd(fragments, contentAssist);
+ nullSafeAdd(fragments, junitSupport);
+ nullSafeAdd(fragments, renameRefactoring);
+ nullSafeAdd(fragments, commonTypesSupport);
+ nullSafeAdd(fragments, xbaseSupport);
+ nullSafeAdd(fragments, xtypeSupport);
+ nullSafeAdd(fragments, codeTemplates);
+ nullSafeAdd(fragments, compareEditor);
+ nullSafeAdd(fragments, webSupport);
+ nullSafeAdd(fragments, newProjectWizardForEclipse);
+ nullSafeAdd(fragments, projectWizard);
+ nullSafeAdd(fragments, fileWizard);
+ return fragments;
+ }
+
+ private boolean nullSafeAdd(List list, IXtextGeneratorFragment fragment) {
+ if (fragment != null) {
+ return list.add(fragment);
+ }
+ return false;
+ }
+
+ /**
+ * @deprecated Use 'projectWizard' instead
+ */
+ @Deprecated
+ public org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2 setNewProjectWizardForEclipse(
+ org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2 fragment) {
+ return newProjectWizardForEclipse = fragment;
+ }
+
+ /**
+ * Create a wizard able to create new projects with initial content based on
+ * template definitions. Supported options: 'generate',
+ * 'generateToolbarButton', 'pluginProject'.
+ */
+ public TemplateProjectWizardFragment setProjectWizard(TemplateProjectWizardFragment fragment) {
+ return projectWizard = fragment;
+ }
+
+ /**
+ * Create a wizard able to create new files with initial content based on
+ * template definitions. Supported options: 'generate',
+ * 'generateToolbarButton'.
+ */
+ public TemplateFileWizardFragment setFileWizard(TemplateFileWizardFragment fragment) {
+ return fileWizard = fragment;
+ }
+
+ protected GrammarAccessFragment2 getGrammarAccess() {
+ return grammarAccess;
+ }
+
+ public void setGrammarAccess(GrammarAccessFragment2 grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ protected EMFGeneratorFragment2 getEmfGenerator() {
+ return emfGenerator;
+ }
+
+ public void setEmfGenerator(EMFGeneratorFragment2 emfGenerator) {
+ this.emfGenerator = emfGenerator;
+ }
+
+ protected SerializerFragment2 getSerializer() {
+ return serializer;
+ }
+
+ public void setSerializer(SerializerFragment2 serializer) {
+ this.serializer = serializer;
+ }
+
+ protected ResourceFactoryFragment2 getResourceFactoryFragment() {
+ return resourceFactoryFragment;
+ }
+
+ public void setResourceFactoryFragment(ResourceFactoryFragment2 resourceFactoryFragment) {
+ this.resourceFactoryFragment = resourceFactoryFragment;
+ }
+
+ protected XtextAntlrGeneratorFragment2 getParserGenerator() {
+ return parserGenerator;
+ }
+
+ public void setParserGenerator(XtextAntlrGeneratorFragment2 parserGenerator) {
+ this.parserGenerator = parserGenerator;
+ }
+
+ protected ValidatorFragment2 getValidator() {
+ return validator;
+ }
+
+ public void setValidator(ValidatorFragment2 validator) {
+ this.validator = validator;
+ }
+
+ protected ImportNamespacesScopingFragment2 getScopeProvider() {
+ return scopeProvider;
+ }
+
+ public void setScopeProvider(ImportNamespacesScopingFragment2 scopeProvider) {
+ this.scopeProvider = scopeProvider;
+ }
+
+ protected ResourceDescriptionStrategyFragment getResourceDescriptionStrategy() {
+ return resourceDescriptionStrategy;
+ }
+
+ public void setResourceDescriptionStrategy(ResourceDescriptionStrategyFragment resourceDescriptionStrategy) {
+ this.resourceDescriptionStrategy = resourceDescriptionStrategy;
+ }
+
+ protected QualifiedNamesFragment2 getQualifiedNamesProvider() {
+ return qualifiedNamesProvider;
+ }
+
+ public void setQualifiedNamesProvider(QualifiedNamesFragment2 qualifiedNamesProvider) {
+ this.qualifiedNamesProvider = qualifiedNamesProvider;
+ }
+
+ protected BuilderIntegrationFragment2 getBuilder() {
+ return builder;
+ }
+
+ public void setBuilder(BuilderIntegrationFragment2 builder) {
+ this.builder = builder;
+ }
+
+ protected GeneratorFragment2 getGenerator() {
+ return generator;
+ }
+
+ public void setGenerator(GeneratorFragment2 generator) {
+ this.generator = generator;
+ }
+
+ protected Formatter2Fragment2 getFormatter() {
+ return formatter;
+ }
+
+ public void setFormatter(Formatter2Fragment2 formatter) {
+ this.formatter = formatter;
+ }
+
+ protected LabelProviderFragment2 getLabelProvider() {
+ return labelProvider;
+ }
+
+ public void setLabelProvider(LabelProviderFragment2 labelProvider) {
+ this.labelProvider = labelProvider;
+ }
+
+ protected QuickOutlineFragment2 getQuickOutline() {
+ return quickOutline;
+ }
+
+ public void setQuickOutline(QuickOutlineFragment2 quickOutline) {
+ this.quickOutline = quickOutline;
+ }
+
+ protected OutlineTreeProviderFragment2 getOutline() {
+ return outline;
+ }
+
+ public void setOutline(OutlineTreeProviderFragment2 outline) {
+ this.outline = outline;
+ }
+
+ protected QuickfixProviderFragment2 getQuickFixProvider() {
+ return quickFixProvider;
+ }
+
+ public void setQuickFixProvider(QuickfixProviderFragment2 quickFixProvider) {
+ this.quickFixProvider = quickFixProvider;
+ }
+
+ protected ContentAssistFragment2 getContentAssist() {
+ return contentAssist;
+ }
+
+ public void setContentAssist(ContentAssistFragment2 contentAssist) {
+ this.contentAssist = contentAssist;
+ }
+
+ protected JUnitFragment getJunitSupport() {
+ return junitSupport;
+ }
+
+ public void setJunitSupport(JUnitFragment junitSupport) {
+ this.junitSupport = junitSupport;
+ }
+
+ protected RefactorElementNameFragment2 getRenameRefactoring() {
+ return renameRefactoring;
+ }
+
+ public void setRenameRefactoring(RefactorElementNameFragment2 renameRefactoring) {
+ this.renameRefactoring = renameRefactoring;
+ }
+
+ protected TypesGeneratorFragment2 getCommonTypesSupport() {
+ return commonTypesSupport;
+ }
+
+ public void setCommonTypesSupport(TypesGeneratorFragment2 commonTypesSupport) {
+ this.commonTypesSupport = commonTypesSupport;
+ }
+
+ protected XbaseGeneratorFragment2 getXbaseSupport() {
+ return xbaseSupport;
+ }
+
+ public void setXbaseSupport(XbaseGeneratorFragment2 xbaseSupport) {
+ this.xbaseSupport = xbaseSupport;
+ }
+
+ protected XtypeGeneratorFragment2 getXtypeSupport() {
+ return xtypeSupport;
+ }
+
+ public void setXtypeSupport(XtypeGeneratorFragment2 xtypeSupport) {
+ this.xtypeSupport = xtypeSupport;
+ }
+
+ protected CodetemplatesGeneratorFragment2 getCodeTemplates() {
+ return codeTemplates;
+ }
+
+ public void setCodeTemplates(CodetemplatesGeneratorFragment2 codeTemplates) {
+ this.codeTemplates = codeTemplates;
+ }
+
+ protected CompareFragment2 getCompareEditor() {
+ return compareEditor;
+ }
+
+ public void setCompareEditor(CompareFragment2 compareEditor) {
+ this.compareEditor = compareEditor;
+ }
+
+ protected WebIntegrationFragment getWebSupport() {
+ return webSupport;
+ }
+
+ public void setWebSupport(WebIntegrationFragment webSupport) {
+ this.webSupport = webSupport;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2 getNewProjectWizardForEclipse() {
+ return newProjectWizardForEclipse;
+ }
+
+ protected TemplateProjectWizardFragment getProjectWizard() {
+ return projectWizard;
+ }
+
+ protected TemplateFileWizardFragment getFileWizard() {
+ return fileWizard;
+ }
+
+}
diff --git a/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/StandardLanguage.xtend b/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/StandardLanguage.xtend
deleted file mode 100644
index 5434a1bc4c..0000000000
--- a/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/StandardLanguage.xtend
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2020 itemis AG (http://www.itemis.eu) and others.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.xtext.xtext.generator
-
-import com.google.inject.Injector
-import java.util.List
-import org.eclipse.xtend.lib.annotations.Accessors
-import org.eclipse.xtext.util.internal.Log
-import org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
-import org.eclipse.xtext.xtext.generator.ecore.EMFGeneratorFragment2
-import org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
-import org.eclipse.xtext.xtext.generator.formatting.Formatter2Fragment2
-import org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
-import org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
-import org.eclipse.xtext.xtext.generator.index.ResourceDescriptionStrategyFragment
-import org.eclipse.xtext.xtext.generator.junit.JUnitFragment
-import org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
-import org.eclipse.xtext.xtext.generator.resourceFactory.ResourceFactoryFragment2
-import org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
-import org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
-import org.eclipse.xtext.xtext.generator.types.TypesGeneratorFragment2
-import org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2
-import org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2
-import org.eclipse.xtext.xtext.generator.ui.fileWizard.TemplateFileWizardFragment
-import org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
-import org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2
-import org.eclipse.xtext.xtext.generator.ui.outline.QuickOutlineFragment2
-import org.eclipse.xtext.xtext.generator.ui.projectWizard.TemplateProjectWizardFragment
-import org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2
-import org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
-import org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
-import org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
-import org.eclipse.xtext.xtext.generator.web.WebIntegrationFragment
-import org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
-import org.eclipse.xtext.xtext.generator.xbase.XtypeGeneratorFragment2
-
-/**
- * This specialization of the {@link XtextGeneratorLanguage} adds all the standard generator fragments
- * that are commonly used for Xtext languages. This eliminates the need to list all these fragments
- * explicitly in the workflow file. More fragments can be added as required, but the standard fragments
- * cannot be removed. However, most of these fragments disable themselves automatically if they are
- * not applicable, e.g. the {@link WebIntegrationFragment} does not generate anything if the web project
- * is disabled in the project configuration.
- *
- * The configuration for individual fragments can be made with the corresponding properties.
- * For example, write
- *
- * formatter = formatting.Formatter2Fragment2 {
- * generateStub = true
- * }
- *
- * to enable stub generation for the formatter.
- *
- * @author Sven Efftinge - Initial contribution and API
- * @author Holger Schill
- * @author Arne Deutsch - Add projectWizard and fileWizard, deprecate 'newProjectWizardForEclipse'
- * @noextend This class should not be extended by clients.
- */
-@Accessors(PUBLIC_SETTER, PROTECTED_GETTER)
-@Log class StandardLanguage extends XtextGeneratorLanguage {
-
- GrammarAccessFragment2 grammarAccess = new GrammarAccessFragment2
-
- EMFGeneratorFragment2 emfGenerator = new EMFGeneratorFragment2
-
- SerializerFragment2 serializer = new SerializerFragment2
-
- ResourceFactoryFragment2 resourceFactoryFragment = new ResourceFactoryFragment2
-
- XtextAntlrGeneratorFragment2 parserGenerator = new XtextAntlrGeneratorFragment2
-
- ValidatorFragment2 validator = new ValidatorFragment2
-
- ImportNamespacesScopingFragment2 scopeProvider = new ImportNamespacesScopingFragment2
-
- /**
- * @since 2.14
- */
- ResourceDescriptionStrategyFragment resourceDescriptionStrategy = new ResourceDescriptionStrategyFragment
-
- QualifiedNamesFragment2 qualifiedNamesProvider = new QualifiedNamesFragment2
-
- BuilderIntegrationFragment2 builder = new BuilderIntegrationFragment2
-
- GeneratorFragment2 generator = new GeneratorFragment2
-
- Formatter2Fragment2 formatter = new Formatter2Fragment2
-
- LabelProviderFragment2 labelProvider = new LabelProviderFragment2
-
- QuickOutlineFragment2 quickOutline = new QuickOutlineFragment2
-
- OutlineTreeProviderFragment2 outline = new OutlineTreeProviderFragment2
-
- QuickfixProviderFragment2 quickFixProvider = new QuickfixProviderFragment2
-
- ContentAssistFragment2 contentAssist = new ContentAssistFragment2
-
- JUnitFragment junitSupport = new JUnitFragment
-
- RefactorElementNameFragment2 renameRefactoring = new RefactorElementNameFragment2
-
- TypesGeneratorFragment2 commonTypesSupport = new TypesGeneratorFragment2
-
- XbaseGeneratorFragment2 xbaseSupport = new XbaseGeneratorFragment2
-
- XtypeGeneratorFragment2 xtypeSupport = new XtypeGeneratorFragment2
-
- CodetemplatesGeneratorFragment2 codeTemplates = new CodetemplatesGeneratorFragment2
-
- CompareFragment2 compareEditor = new CompareFragment2
-
- WebIntegrationFragment webSupport = new WebIntegrationFragment
-
- @Deprecated org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2 newProjectWizardForEclipse = new org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2
-
- TemplateProjectWizardFragment projectWizard = new TemplateProjectWizardFragment
-
- TemplateFileWizardFragment fileWizard = new TemplateFileWizardFragment
-
- new() {
- try {
- class.classLoader.loadClass("org.eclipse.xtext.xbase.XbaseRuntimeModule")
- addReferencedResource("platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel")
- } catch (ClassNotFoundException e) {
- LOG.info("Skipping registration of Xbase genmodel. Xbase is not on the classpath.")
- }
- }
-
- override initialize(Injector injector) {
- if (!formatter.getGenerateStub.isSet)
- formatter.generateStub = false
- if (!commonTypesSupport.onlyEnabledIfGrammarIsUsed.isSet)
- commonTypesSupport.onlyEnabledIfGrammarIsUsed = true
- if (!webSupport.framework.isSet)
- webSupport.framework = 'Ace'
- if (!webSupport.generateServlet.isSet)
- webSupport.generateServlet = true
- if (!webSupport.generateJettyLauncher.isSet)
- webSupport.generateJettyLauncher = true
- if (!webSupport.generateHtmlExample.isSet)
- webSupport.generateHtmlExample = true
- super.initialize(injector)
- }
-
- override protected getImplicitFragments() {
- val fragments = newArrayList
- fragments += super.getImplicitFragments
- fragments += grammarAccess
- fragments += emfGenerator
- fragments += serializer
- fragments += resourceFactoryFragment
- fragments += parserGenerator
- fragments += validator
- fragments += scopeProvider
- fragments += resourceDescriptionStrategy
- fragments += qualifiedNamesProvider
- fragments += builder
- fragments += generator
- fragments += formatter
- fragments += labelProvider
- fragments += quickOutline
- fragments += outline
- fragments += quickFixProvider
- fragments += contentAssist
- fragments += junitSupport
- fragments += renameRefactoring
- fragments += commonTypesSupport
- fragments += xbaseSupport
- fragments += xtypeSupport
- fragments += codeTemplates
- fragments += compareEditor
- fragments += webSupport
- fragments += newProjectWizardForEclipse
- fragments += projectWizard
- fragments += fileWizard
- fragments
- }
-
- private def +=(List list, IXtextGeneratorFragment fragment) {
- if (fragment !== null) {
- list.add(fragment)
- }
- }
-
- /**
- * @deprecated Use 'projectWizard' instead
- */
- @Deprecated
- def setNewProjectWizardForEclipse(org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2 fragment) {
- this.newProjectWizardForEclipse = fragment
- }
-
- /**
- * Create a wizard able to create new projects with initial content based on template definitions.
- * Supported options: 'generate', 'generateToolbarButton', 'pluginProject'.
- */
- def setProjectWizard(TemplateProjectWizardFragment fragment) {
- this.projectWizard = fragment
- }
-
- /**
- * Create a wizard able to create new files with initial content based on template definitions.
- * Supported options: 'generate', 'generateToolbarButton'.
- */
- def setFileWizard(TemplateFileWizardFragment fragment) {
- this.fileWizard = fragment
- }
-}
diff --git a/org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/StandardLanguage.java b/org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/StandardLanguage.java
deleted file mode 100644
index a6a17504e2..0000000000
--- a/org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/StandardLanguage.java
+++ /dev/null
@@ -1,500 +0,0 @@
-/**
- * Copyright (c) 2015, 2020 itemis AG (http://www.itemis.eu) and others.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * SPDX-License-Identifier: EPL-2.0
- */
-package org.eclipse.xtext.xtext.generator;
-
-import com.google.common.collect.Iterables;
-import com.google.inject.Injector;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.log4j.Logger;
-import org.eclipse.xtend.lib.annotations.AccessorType;
-import org.eclipse.xtend.lib.annotations.Accessors;
-import org.eclipse.xtext.util.internal.Log;
-import org.eclipse.xtext.xbase.lib.CollectionLiterals;
-import org.eclipse.xtext.xbase.lib.Exceptions;
-import org.eclipse.xtext.xbase.lib.Pure;
-import org.eclipse.xtext.xtext.generator.IXtextGeneratorFragment;
-import org.eclipse.xtext.xtext.generator.XtextGeneratorLanguage;
-import org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2;
-import org.eclipse.xtext.xtext.generator.ecore.EMFGeneratorFragment2;
-import org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2;
-import org.eclipse.xtext.xtext.generator.formatting.Formatter2Fragment2;
-import org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2;
-import org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2;
-import org.eclipse.xtext.xtext.generator.index.ResourceDescriptionStrategyFragment;
-import org.eclipse.xtext.xtext.generator.junit.JUnitFragment;
-import org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2;
-import org.eclipse.xtext.xtext.generator.resourceFactory.ResourceFactoryFragment2;
-import org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2;
-import org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2;
-import org.eclipse.xtext.xtext.generator.types.TypesGeneratorFragment2;
-import org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2;
-import org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2;
-import org.eclipse.xtext.xtext.generator.ui.fileWizard.TemplateFileWizardFragment;
-import org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2;
-import org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2;
-import org.eclipse.xtext.xtext.generator.ui.outline.QuickOutlineFragment2;
-import org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2;
-import org.eclipse.xtext.xtext.generator.ui.projectWizard.TemplateProjectWizardFragment;
-import org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2;
-import org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2;
-import org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2;
-import org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2;
-import org.eclipse.xtext.xtext.generator.web.WebIntegrationFragment;
-import org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2;
-import org.eclipse.xtext.xtext.generator.xbase.XtypeGeneratorFragment2;
-
-/**
- * This specialization of the {@link XtextGeneratorLanguage} adds all the standard generator fragments
- * that are commonly used for Xtext languages. This eliminates the need to list all these fragments
- * explicitly in the workflow file. More fragments can be added as required, but the standard fragments
- * cannot be removed. However, most of these fragments disable themselves automatically if they are
- * not applicable, e.g. the {@link WebIntegrationFragment} does not generate anything if the web project
- * is disabled in the project configuration.
- *
- * The configuration for individual fragments can be made with the corresponding properties.
- * For example, write
- *
- * formatter = formatting.Formatter2Fragment2 {
- * generateStub = true
- * }
- *
- * to enable stub generation for the formatter.
- *
- * @author Sven Efftinge - Initial contribution and API
- * @author Holger Schill
- * @author Arne Deutsch - Add projectWizard and fileWizard, deprecate 'newProjectWizardForEclipse'
- * @noextend This class should not be extended by clients.
- */
-@Accessors({ AccessorType.PUBLIC_SETTER, AccessorType.PROTECTED_GETTER })
-@Log
-@SuppressWarnings("all")
-public class StandardLanguage extends XtextGeneratorLanguage {
- private GrammarAccessFragment2 grammarAccess = new GrammarAccessFragment2();
-
- private EMFGeneratorFragment2 emfGenerator = new EMFGeneratorFragment2();
-
- private SerializerFragment2 serializer = new SerializerFragment2();
-
- private ResourceFactoryFragment2 resourceFactoryFragment = new ResourceFactoryFragment2();
-
- private XtextAntlrGeneratorFragment2 parserGenerator = new XtextAntlrGeneratorFragment2();
-
- private ValidatorFragment2 validator = new ValidatorFragment2();
-
- private ImportNamespacesScopingFragment2 scopeProvider = new ImportNamespacesScopingFragment2();
-
- /**
- * @since 2.14
- */
- private ResourceDescriptionStrategyFragment resourceDescriptionStrategy = new ResourceDescriptionStrategyFragment();
-
- private QualifiedNamesFragment2 qualifiedNamesProvider = new QualifiedNamesFragment2();
-
- private BuilderIntegrationFragment2 builder = new BuilderIntegrationFragment2();
-
- private GeneratorFragment2 generator = new GeneratorFragment2();
-
- private Formatter2Fragment2 formatter = new Formatter2Fragment2();
-
- private LabelProviderFragment2 labelProvider = new LabelProviderFragment2();
-
- private QuickOutlineFragment2 quickOutline = new QuickOutlineFragment2();
-
- private OutlineTreeProviderFragment2 outline = new OutlineTreeProviderFragment2();
-
- private QuickfixProviderFragment2 quickFixProvider = new QuickfixProviderFragment2();
-
- private ContentAssistFragment2 contentAssist = new ContentAssistFragment2();
-
- private JUnitFragment junitSupport = new JUnitFragment();
-
- private RefactorElementNameFragment2 renameRefactoring = new RefactorElementNameFragment2();
-
- private TypesGeneratorFragment2 commonTypesSupport = new TypesGeneratorFragment2();
-
- private XbaseGeneratorFragment2 xbaseSupport = new XbaseGeneratorFragment2();
-
- private XtypeGeneratorFragment2 xtypeSupport = new XtypeGeneratorFragment2();
-
- private CodetemplatesGeneratorFragment2 codeTemplates = new CodetemplatesGeneratorFragment2();
-
- private CompareFragment2 compareEditor = new CompareFragment2();
-
- private WebIntegrationFragment webSupport = new WebIntegrationFragment();
-
- @Deprecated
- private SimpleProjectWizardFragment2 newProjectWizardForEclipse = new SimpleProjectWizardFragment2();
-
- private TemplateProjectWizardFragment projectWizard = new TemplateProjectWizardFragment();
-
- private TemplateFileWizardFragment fileWizard = new TemplateFileWizardFragment();
-
- public StandardLanguage() {
- try {
- this.getClass().getClassLoader().loadClass("org.eclipse.xtext.xbase.XbaseRuntimeModule");
- this.addReferencedResource("platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel");
- } catch (final Throwable _t) {
- if (_t instanceof ClassNotFoundException) {
- StandardLanguage.LOG.info("Skipping registration of Xbase genmodel. Xbase is not on the classpath.");
- } else {
- throw Exceptions.sneakyThrow(_t);
- }
- }
- }
-
- @Override
- public void initialize(final Injector injector) {
- boolean _isSet = this.formatter.getGenerateStub().isSet();
- boolean _not = (!_isSet);
- if (_not) {
- this.formatter.setGenerateStub(false);
- }
- boolean _isSet_1 = this.commonTypesSupport.getOnlyEnabledIfGrammarIsUsed().isSet();
- boolean _not_1 = (!_isSet_1);
- if (_not_1) {
- this.commonTypesSupport.setOnlyEnabledIfGrammarIsUsed(true);
- }
- boolean _isSet_2 = this.webSupport.getFramework().isSet();
- boolean _not_2 = (!_isSet_2);
- if (_not_2) {
- this.webSupport.setFramework("Ace");
- }
- boolean _isSet_3 = this.webSupport.getGenerateServlet().isSet();
- boolean _not_3 = (!_isSet_3);
- if (_not_3) {
- this.webSupport.setGenerateServlet(true);
- }
- boolean _isSet_4 = this.webSupport.getGenerateJettyLauncher().isSet();
- boolean _not_4 = (!_isSet_4);
- if (_not_4) {
- this.webSupport.setGenerateJettyLauncher(true);
- }
- boolean _isSet_5 = this.webSupport.getGenerateHtmlExample().isSet();
- boolean _not_5 = (!_isSet_5);
- if (_not_5) {
- this.webSupport.setGenerateHtmlExample(true);
- }
- super.initialize(injector);
- }
-
- @Override
- protected List extends IXtextGeneratorFragment> getImplicitFragments() {
- ArrayList _xblockexpression = null;
- {
- final ArrayList fragments = CollectionLiterals.newArrayList();
- List extends IXtextGeneratorFragment> _implicitFragments = super.getImplicitFragments();
- Iterables.addAll(fragments, _implicitFragments);
- this.operator_add(fragments, this.grammarAccess);
- this.operator_add(fragments, this.emfGenerator);
- this.operator_add(fragments, this.serializer);
- this.operator_add(fragments, this.resourceFactoryFragment);
- this.operator_add(fragments, this.parserGenerator);
- this.operator_add(fragments, this.validator);
- this.operator_add(fragments, this.scopeProvider);
- this.operator_add(fragments, this.resourceDescriptionStrategy);
- this.operator_add(fragments, this.qualifiedNamesProvider);
- this.operator_add(fragments, this.builder);
- this.operator_add(fragments, this.generator);
- this.operator_add(fragments, this.formatter);
- this.operator_add(fragments, this.labelProvider);
- this.operator_add(fragments, this.quickOutline);
- this.operator_add(fragments, this.outline);
- this.operator_add(fragments, this.quickFixProvider);
- this.operator_add(fragments, this.contentAssist);
- this.operator_add(fragments, this.junitSupport);
- this.operator_add(fragments, this.renameRefactoring);
- this.operator_add(fragments, this.commonTypesSupport);
- this.operator_add(fragments, this.xbaseSupport);
- this.operator_add(fragments, this.xtypeSupport);
- this.operator_add(fragments, this.codeTemplates);
- this.operator_add(fragments, this.compareEditor);
- this.operator_add(fragments, this.webSupport);
- this.operator_add(fragments, this.newProjectWizardForEclipse);
- this.operator_add(fragments, this.projectWizard);
- this.operator_add(fragments, this.fileWizard);
- _xblockexpression = fragments;
- }
- return _xblockexpression;
- }
-
- private boolean operator_add(final List list, final IXtextGeneratorFragment fragment) {
- boolean _xifexpression = false;
- if ((fragment != null)) {
- _xifexpression = list.add(fragment);
- }
- return _xifexpression;
- }
-
- /**
- * @deprecated Use 'projectWizard' instead
- */
- @Deprecated
- public SimpleProjectWizardFragment2 setNewProjectWizardForEclipse(final SimpleProjectWizardFragment2 fragment) {
- return this.newProjectWizardForEclipse = fragment;
- }
-
- /**
- * Create a wizard able to create new projects with initial content based on template definitions.
- * Supported options: 'generate', 'generateToolbarButton', 'pluginProject'.
- */
- public TemplateProjectWizardFragment setProjectWizard(final TemplateProjectWizardFragment fragment) {
- return this.projectWizard = fragment;
- }
-
- /**
- * Create a wizard able to create new files with initial content based on template definitions.
- * Supported options: 'generate', 'generateToolbarButton'.
- */
- public TemplateFileWizardFragment setFileWizard(final TemplateFileWizardFragment fragment) {
- return this.fileWizard = fragment;
- }
-
- @Pure
- protected GrammarAccessFragment2 getGrammarAccess() {
- return this.grammarAccess;
- }
-
- public void setGrammarAccess(final GrammarAccessFragment2 grammarAccess) {
- this.grammarAccess = grammarAccess;
- }
-
- @Pure
- protected EMFGeneratorFragment2 getEmfGenerator() {
- return this.emfGenerator;
- }
-
- public void setEmfGenerator(final EMFGeneratorFragment2 emfGenerator) {
- this.emfGenerator = emfGenerator;
- }
-
- @Pure
- protected SerializerFragment2 getSerializer() {
- return this.serializer;
- }
-
- public void setSerializer(final SerializerFragment2 serializer) {
- this.serializer = serializer;
- }
-
- @Pure
- protected ResourceFactoryFragment2 getResourceFactoryFragment() {
- return this.resourceFactoryFragment;
- }
-
- public void setResourceFactoryFragment(final ResourceFactoryFragment2 resourceFactoryFragment) {
- this.resourceFactoryFragment = resourceFactoryFragment;
- }
-
- @Pure
- protected XtextAntlrGeneratorFragment2 getParserGenerator() {
- return this.parserGenerator;
- }
-
- public void setParserGenerator(final XtextAntlrGeneratorFragment2 parserGenerator) {
- this.parserGenerator = parserGenerator;
- }
-
- @Pure
- protected ValidatorFragment2 getValidator() {
- return this.validator;
- }
-
- public void setValidator(final ValidatorFragment2 validator) {
- this.validator = validator;
- }
-
- @Pure
- protected ImportNamespacesScopingFragment2 getScopeProvider() {
- return this.scopeProvider;
- }
-
- public void setScopeProvider(final ImportNamespacesScopingFragment2 scopeProvider) {
- this.scopeProvider = scopeProvider;
- }
-
- @Pure
- protected ResourceDescriptionStrategyFragment getResourceDescriptionStrategy() {
- return this.resourceDescriptionStrategy;
- }
-
- public void setResourceDescriptionStrategy(final ResourceDescriptionStrategyFragment resourceDescriptionStrategy) {
- this.resourceDescriptionStrategy = resourceDescriptionStrategy;
- }
-
- @Pure
- protected QualifiedNamesFragment2 getQualifiedNamesProvider() {
- return this.qualifiedNamesProvider;
- }
-
- public void setQualifiedNamesProvider(final QualifiedNamesFragment2 qualifiedNamesProvider) {
- this.qualifiedNamesProvider = qualifiedNamesProvider;
- }
-
- @Pure
- protected BuilderIntegrationFragment2 getBuilder() {
- return this.builder;
- }
-
- public void setBuilder(final BuilderIntegrationFragment2 builder) {
- this.builder = builder;
- }
-
- @Pure
- protected GeneratorFragment2 getGenerator() {
- return this.generator;
- }
-
- public void setGenerator(final GeneratorFragment2 generator) {
- this.generator = generator;
- }
-
- @Pure
- protected Formatter2Fragment2 getFormatter() {
- return this.formatter;
- }
-
- public void setFormatter(final Formatter2Fragment2 formatter) {
- this.formatter = formatter;
- }
-
- @Pure
- protected LabelProviderFragment2 getLabelProvider() {
- return this.labelProvider;
- }
-
- public void setLabelProvider(final LabelProviderFragment2 labelProvider) {
- this.labelProvider = labelProvider;
- }
-
- @Pure
- protected QuickOutlineFragment2 getQuickOutline() {
- return this.quickOutline;
- }
-
- public void setQuickOutline(final QuickOutlineFragment2 quickOutline) {
- this.quickOutline = quickOutline;
- }
-
- @Pure
- protected OutlineTreeProviderFragment2 getOutline() {
- return this.outline;
- }
-
- public void setOutline(final OutlineTreeProviderFragment2 outline) {
- this.outline = outline;
- }
-
- @Pure
- protected QuickfixProviderFragment2 getQuickFixProvider() {
- return this.quickFixProvider;
- }
-
- public void setQuickFixProvider(final QuickfixProviderFragment2 quickFixProvider) {
- this.quickFixProvider = quickFixProvider;
- }
-
- @Pure
- protected ContentAssistFragment2 getContentAssist() {
- return this.contentAssist;
- }
-
- public void setContentAssist(final ContentAssistFragment2 contentAssist) {
- this.contentAssist = contentAssist;
- }
-
- @Pure
- protected JUnitFragment getJunitSupport() {
- return this.junitSupport;
- }
-
- public void setJunitSupport(final JUnitFragment junitSupport) {
- this.junitSupport = junitSupport;
- }
-
- @Pure
- protected RefactorElementNameFragment2 getRenameRefactoring() {
- return this.renameRefactoring;
- }
-
- public void setRenameRefactoring(final RefactorElementNameFragment2 renameRefactoring) {
- this.renameRefactoring = renameRefactoring;
- }
-
- @Pure
- protected TypesGeneratorFragment2 getCommonTypesSupport() {
- return this.commonTypesSupport;
- }
-
- public void setCommonTypesSupport(final TypesGeneratorFragment2 commonTypesSupport) {
- this.commonTypesSupport = commonTypesSupport;
- }
-
- @Pure
- protected XbaseGeneratorFragment2 getXbaseSupport() {
- return this.xbaseSupport;
- }
-
- public void setXbaseSupport(final XbaseGeneratorFragment2 xbaseSupport) {
- this.xbaseSupport = xbaseSupport;
- }
-
- @Pure
- protected XtypeGeneratorFragment2 getXtypeSupport() {
- return this.xtypeSupport;
- }
-
- public void setXtypeSupport(final XtypeGeneratorFragment2 xtypeSupport) {
- this.xtypeSupport = xtypeSupport;
- }
-
- @Pure
- protected CodetemplatesGeneratorFragment2 getCodeTemplates() {
- return this.codeTemplates;
- }
-
- public void setCodeTemplates(final CodetemplatesGeneratorFragment2 codeTemplates) {
- this.codeTemplates = codeTemplates;
- }
-
- @Pure
- protected CompareFragment2 getCompareEditor() {
- return this.compareEditor;
- }
-
- public void setCompareEditor(final CompareFragment2 compareEditor) {
- this.compareEditor = compareEditor;
- }
-
- @Pure
- protected WebIntegrationFragment getWebSupport() {
- return this.webSupport;
- }
-
- public void setWebSupport(final WebIntegrationFragment webSupport) {
- this.webSupport = webSupport;
- }
-
- @Pure
- protected SimpleProjectWizardFragment2 getNewProjectWizardForEclipse() {
- return this.newProjectWizardForEclipse;
- }
-
- @Pure
- protected TemplateProjectWizardFragment getProjectWizard() {
- return this.projectWizard;
- }
-
- @Pure
- protected TemplateFileWizardFragment getFileWizard() {
- return this.fileWizard;
- }
-
- private static final Logger LOG = Logger.getLogger(StandardLanguage.class);
-}
diff --git a/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/LanguageDescriptor.java b/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/LanguageDescriptor.java
new file mode 100644
index 0000000000..648054d724
--- /dev/null
+++ b/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/LanguageDescriptor.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) 2015, 2020 itemis AG (http://www.itemis.eu) and others.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+package org.eclipse.xtext.xtext.wizard;
+
+import java.util.Iterator;
+
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+
+import com.google.common.base.Splitter;
+
+public class LanguageDescriptor {
+ public static class FileExtensions implements Iterable {
+
+ public FileExtensions(Iterable fileExtensions) {
+ this.fileExtensions = fileExtensions;
+ }
+
+ public static FileExtensions fromString(String fileExtensions) {
+ Iterable splitFileExtensions = Splitter.on(",").trimResults().omitEmptyStrings()
+ .split(fileExtensions);
+ return new FileExtensions(splitFileExtensions);
+ }
+
+ private final Iterable fileExtensions;
+
+ @Override
+ public Iterator iterator() {
+ return fileExtensions.iterator();
+ }
+
+ @Override
+ public String toString() {
+ return IterableExtensions.join(fileExtensions, ",");
+ }
+ }
+
+ private String name;
+
+ private FileExtensions fileExtensions;
+
+ public String getBasePackage() {
+ int i = name.lastIndexOf(".");
+ int endIndex = 0;
+ if (i == -1) {
+ endIndex = name.length();
+ } else {
+ endIndex = i;
+ }
+ return name.substring(0, endIndex);
+ }
+
+ public String getBasePackagePath() {
+ return getBasePackage().replaceAll("\\.", "/");
+ }
+
+ public String getSimpleName() {
+ String[] segments = name.split("\\.");
+ return StringExtensions.toFirstUpper(segments[segments.length - 1]);
+ }
+
+ public String getNsURI() {
+ String[] strings = this.name.split("\\.");
+ if (strings.length < 2) {
+ return "http://www." + this.name;
+ }
+ String s = "http://www." + strings[1] + "." + strings[0];
+ for (int i = 2; i < strings.length; i++) {
+ s = s + "/" + strings[i];
+ }
+ return s;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public FileExtensions getFileExtensions() {
+ return fileExtensions;
+ }
+
+ public void setFileExtensions(FileExtensions fileExtensions) {
+ this.fileExtensions = fileExtensions;
+ }
+}
diff --git a/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/LanguageDescriptor.xtend b/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/LanguageDescriptor.xtend
deleted file mode 100644
index 59e1bf2f33..0000000000
--- a/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/LanguageDescriptor.xtend
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.xtext.xtext.wizard
-
-import com.google.common.base.Splitter
-import org.eclipse.xtend.lib.annotations.Accessors
-import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
-
-@Accessors
-class LanguageDescriptor {
- String name
- FileExtensions fileExtensions
-
- def String getBasePackage() {
- val i = name.lastIndexOf(".")
- name.substring(0, (if(i === -1) name.length else i ))
- }
-
- def String getBasePackagePath() {
- basePackage.replaceAll("\\.", "/")
- }
-
- def String getSimpleName() {
- val segments = name.split("\\.")
- return segments.last.toFirstUpper
- }
-
- def String getNsURI() {
- val strings = name.split("\\.")
- if (strings.length < 2) {
- return '''http://www.«name»'''
- }
- var s = '''http://www.«strings.get(1)».«strings.get(0)»'''
- for (var i = 2; i < strings.length; i++) {
- s += '''/«strings.get(i)»'''
- }
- return s
- }
-
- @FinalFieldsConstructor
- static class FileExtensions implements Iterable {
- static def fromString(String fileExtensions) {
- val splitFileExtensions = Splitter.on(',').trimResults.omitEmptyStrings.split(fileExtensions)
- new FileExtensions(splitFileExtensions)
- }
-
- val Iterable fileExtensions
-
- override iterator() {
- fileExtensions.iterator
- }
-
- override toString() {
- fileExtensions.join(",")
- }
-
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.xtext.xtext.wizard/xtend-gen/org/eclipse/xtext/xtext/wizard/LanguageDescriptor.java b/org.eclipse.xtext.xtext.wizard/xtend-gen/org/eclipse/xtext/xtext/wizard/LanguageDescriptor.java
deleted file mode 100644
index 6c52a599cc..0000000000
--- a/org.eclipse.xtext.xtext.wizard/xtend-gen/org/eclipse/xtext/xtext/wizard/LanguageDescriptor.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * SPDX-License-Identifier: EPL-2.0
- */
-package org.eclipse.xtext.xtext.wizard;
-
-import com.google.common.base.Splitter;
-import java.util.Iterator;
-import org.eclipse.xtend.lib.annotations.Accessors;
-import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor;
-import org.eclipse.xtend2.lib.StringConcatenation;
-import org.eclipse.xtext.xbase.lib.Conversions;
-import org.eclipse.xtext.xbase.lib.IterableExtensions;
-import org.eclipse.xtext.xbase.lib.Pure;
-import org.eclipse.xtext.xbase.lib.StringExtensions;
-
-@Accessors
-@SuppressWarnings("all")
-public class LanguageDescriptor {
- @FinalFieldsConstructor
- public static class FileExtensions implements Iterable {
- public static LanguageDescriptor.FileExtensions fromString(final String fileExtensions) {
- LanguageDescriptor.FileExtensions _xblockexpression = null;
- {
- final Iterable splitFileExtensions = Splitter.on(",").trimResults().omitEmptyStrings().split(fileExtensions);
- _xblockexpression = new LanguageDescriptor.FileExtensions(splitFileExtensions);
- }
- return _xblockexpression;
- }
-
- private final Iterable fileExtensions;
-
- @Override
- public Iterator iterator() {
- return this.fileExtensions.iterator();
- }
-
- @Override
- public String toString() {
- return IterableExtensions.join(this.fileExtensions, ",");
- }
-
- public FileExtensions(final Iterable fileExtensions) {
- super();
- this.fileExtensions = fileExtensions;
- }
- }
-
- private String name;
-
- private LanguageDescriptor.FileExtensions fileExtensions;
-
- public String getBasePackage() {
- String _xblockexpression = null;
- {
- final int i = this.name.lastIndexOf(".");
- int _xifexpression = (int) 0;
- if ((i == (-1))) {
- _xifexpression = this.name.length();
- } else {
- _xifexpression = i;
- }
- _xblockexpression = this.name.substring(0, _xifexpression);
- }
- return _xblockexpression;
- }
-
- public String getBasePackagePath() {
- return this.getBasePackage().replaceAll("\\.", "/");
- }
-
- public String getSimpleName() {
- final String[] segments = this.name.split("\\.");
- return StringExtensions.toFirstUpper(IterableExtensions.last(((Iterable)Conversions.doWrapArray(segments))));
- }
-
- public String getNsURI() {
- final String[] strings = this.name.split("\\.");
- int _length = strings.length;
- boolean _lessThan = (_length < 2);
- if (_lessThan) {
- StringConcatenation _builder = new StringConcatenation();
- _builder.append("http://www.");
- _builder.append(this.name);
- return _builder.toString();
- }
- StringConcatenation _builder_1 = new StringConcatenation();
- _builder_1.append("http://www.");
- String _get = strings[1];
- _builder_1.append(_get);
- _builder_1.append(".");
- String _get_1 = strings[0];
- _builder_1.append(_get_1);
- String s = _builder_1.toString();
- for (int i = 2; (i < strings.length); i++) {
- String _s = s;
- StringConcatenation _builder_2 = new StringConcatenation();
- _builder_2.append("/");
- String _get_2 = strings[i];
- _builder_2.append(_get_2);
- s = (_s + _builder_2);
- }
- return s;
- }
-
- @Pure
- public String getName() {
- return this.name;
- }
-
- public void setName(final String name) {
- this.name = name;
- }
-
- @Pure
- public LanguageDescriptor.FileExtensions getFileExtensions() {
- return this.fileExtensions;
- }
-
- public void setFileExtensions(final LanguageDescriptor.FileExtensions fileExtensions) {
- this.fileExtensions = fileExtensions;
- }
-}