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 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 getImplicitFragments() { - ArrayList _xblockexpression = null; - { - final ArrayList fragments = CollectionLiterals.newArrayList(); - List _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; - } -}