From 7bf3dbbb4d1648359751bfc8285c1357738351e6 Mon Sep 17 00:00:00 2001 From: Christian Dietrich Date: Tue, 1 Jun 2021 15:42:34 +0200 Subject: [PATCH] [eclipse/xtext#1952] ported xtend code 2 java Signed-off-by: Christian Dietrich --- .../xtext/generator/util/GenModelUtil2.java | 199 +++++++++++++ .../xtext/generator/util/GenModelUtil2.xtend | 176 ----------- .../xtext/generator/util/GenModelUtil2.java | 277 ------------------ 3 files changed, 199 insertions(+), 453 deletions(-) create mode 100644 org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.java delete mode 100644 org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.xtend delete mode 100644 org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.java diff --git a/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.java b/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.java new file mode 100644 index 000000000..3b2c9803d --- /dev/null +++ b/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.java @@ -0,0 +1,199 @@ +/** + * Copyright (c) 2011, 2021 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.util; + +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenClassifier; +import org.eclipse.emf.codegen.ecore.genmodel.GenDataType; +import org.eclipse.emf.codegen.ecore.genmodel.GenEnum; +import org.eclipse.emf.codegen.ecore.genmodel.GenFeature; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.plugin.EcorePlugin; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.xtext.xtext.generator.ecore.EMFGeneratorFragment2; +import com.google.common.base.Objects; +import com.google.common.base.Strings; + +public class GenModelUtil2 { + public static GenClass getGenClass(EClass cls, ResourceSet resourceSet) { + return (GenClass) GenModelUtil2.getGenClassifier(cls, resourceSet); + } + + public static GenClassifier getGenClassifier(EClassifier cls, ResourceSet resourceSet) { + GenPackage genPackage = GenModelUtil2.getGenPackage(cls.getEPackage(), resourceSet); + for (GenClassifier genCls : genPackage.getGenClassifiers()) { + if (Objects.equal(cls.getName(), genCls.getEcoreClassifier().getName())) { + return genCls; + } + } + throw new RuntimeException("No GenClassifier named '" + cls.getName() + "' found in GenModel " + genPackage.eResource().getURI()); + } + + public static GenDataType getGenDataType(EDataType dt, ResourceSet resourceSet) { + return (GenDataType) GenModelUtil2.getGenClassifier(dt, resourceSet); + } + + public static GenEnum getGenEnum(EEnum en, ResourceSet resourceSet) { + return (GenEnum) GenModelUtil2.getGenClassifier(en, resourceSet); + } + + public static GenFeature getGenFeature(EStructuralFeature feature, ResourceSet resourceSet) { + GenClass genCls = (GenClass) GenModelUtil2.getGenClassifier(feature.getEContainingClass(), resourceSet); + for (GenFeature genFeat : genCls.getGenFeatures()) { + if (Objects.equal(feature.getName(), genFeat.getEcoreFeature().getName())) { + return genFeat; + } + } + throw new RuntimeException("No GenFeature named '" + feature.getName() + "' found in GenClass '" + genCls + "' from GenModel " + genCls.eResource().getURI()); + } + + public static GenPackage getGenPackage(EPackage pkg, ResourceSet resourceSet) { + String nsURI = pkg.getNsURI(); + String location = null; + Resource packageResource = pkg.eResource(); + URI packageResourceUri = null; + if (packageResource != null) { + packageResourceUri = packageResource.getURI(); + } + if (packageResourceUri != null) { + location = pkg.eResource().getURI().toString(); + } + Resource genModelResource = GenModelUtil2.getGenModelResource(location, nsURI, resourceSet); + if (genModelResource != null) { + for (EObject model : genModelResource.getContents()) { + if (model instanceof GenModel) { + GenPackage genPkg = ((GenModel) model).findGenPackage(pkg); + if (genPkg != null) { + genPkg.getEcorePackage().getEClassifiers(); + return genPkg; + } + } + } + throw new RuntimeException("No GenPackage for NsURI " + nsURI + " found in " + genModelResource.getURI()); + } + throw new RuntimeException("No GenPackage for NsURI " + nsURI + "."); + } + + public static Resource getGenModelResource(String locationInfo, String nsURI, + ResourceSet resourceSet) { + URI genModelURI = EcorePlugin.getEPackageNsURIToGenModelLocationMap(false).get(nsURI); + if (genModelURI == null) { + if (Objects.equal(EcorePackage.eNS_URI, nsURI)) { // If we really want to use the registered ecore ... + return null; // look into the resource set to find a genpackage + // for the given URI + } + for (Resource res : resourceSet.getResources()) { + // We only look into the first level, as genmodels are usually + // among the top level elements. + // This is just to avoid traversing all eobjects in the resource + // set. + for (EObject obj : res.getContents()) { + if (obj instanceof GenModel) { + for (GenPackage genPackage : ((GenModel) obj).getGenPackages()) { + if (Objects.equal(genPackage.getNSURI(), nsURI)) { + return genPackage.eResource(); + } + } + } + } + } + String message = + "Could not find a GenModel for EPackage '" + nsURI +"'" + (Strings.isNullOrEmpty(locationInfo) ? "" : " from " + locationInfo) + ".\n" + + "If the missing GenModel has been generated via " + EMFGeneratorFragment2.class.getSimpleName() + ", make sure to run it first in the workflow.\n" + + "If you have a *.genmodel-file, make sure to register it via StandaloneSetup.registerGenModelFile(String).\n"; + throw new RuntimeException(message); + } + if (resourceSet == null) { + throw new RuntimeException("There is no ResourceSet for EPackage '" + nsURI + + "'. Please make sure the EPackage has been loaded from a .ecore file and not from the generated Java file."); + } + Resource genModelResource = resourceSet.getResource(genModelURI, true); + if (genModelResource == null) { + throw new RuntimeException("Error loading GenModel " + genModelURI); + } + for (EObject content : genModelResource.getContents()) { + if (content instanceof GenModel) { + ((GenModel) content).reconcile(); + } + } + return genModelResource; + } + + public static String getPackageLiteral() { + return "eINSTANCE"; + } + + public static String getIntLiteral(EClass clazz, EStructuralFeature feature, + ResourceSet resourceSet) { + return GenModelUtil2.getGenClass(clazz, resourceSet) + .getFeatureID(GenModelUtil2.getGenFeature(feature, resourceSet)); + } + + public static String getIntLiteral(EClassifier classifier, ResourceSet resourceSet) { + return GenModelUtil2.getGenClassifier(classifier, resourceSet).getClassifierID(); + } + + public static String getTypeLiteral(EClassifier classifier, ResourceSet resourceSet) { + GenClassifier genClassifier = GenModelUtil2.getGenClassifier(classifier, resourceSet); + if (genClassifier.getGenPackage().isLiteralsInterface()) { + return "Literals." + genClassifier.getClassifierID(); + } else { + return "eINSTANCE.get" + genClassifier.getClassifierAccessorName() + "()"; + } + } + + public static String getFeatureLiteral(EStructuralFeature feature, ResourceSet resourceSet) { + return GenModelUtil2.getFeatureLiteral(GenModelUtil2.getGenFeature(feature, resourceSet), resourceSet); + } + + public static String getFeatureLiteral(GenFeature genFeature, ResourceSet resourceSet) { + if (genFeature.getGenPackage().isLiteralsInterface()) { + return "Literals." + genFeature.getGenClass().getFeatureID(genFeature); + } else { + return "eINSTANCE.get" + genFeature.getFeatureAccessorName() + "()"; + } + } + + public static String getJavaTypeName(EClassifier classifier, ResourceSet resourceSet) { + GenClassifier genClassifier = GenModelUtil2.getGenClassifier(classifier, resourceSet); + if (genClassifier instanceof GenClass) { + return ((GenClass) genClassifier).getQualifiedInterfaceName(); + } else { + return ((GenDataType) genClassifier).getQualifiedInstanceClassName(); + } + } + + public static String getGetAccessor(EStructuralFeature feature, ResourceSet resourceSet) { + return GenModelUtil2.getGetAccessor(GenModelUtil2.getGenFeature(feature, resourceSet), resourceSet); + } + + public static String getGetAccessor(GenFeature genFeature, ResourceSet resourceSet) { + GenClass genClass = genFeature.getGenClass(); + if (genClass.isMapEntry()) { + if (Objects.equal(genFeature, genClass.getMapEntryKeyFeature())) { + return "getKey"; + } + if (Objects.equal(genFeature, genClass.getMapEntryValueFeature())) { + return "getValue"; + } + } + return genFeature.getGetAccessor(); + } +} diff --git a/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.xtend b/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.xtend deleted file mode 100644 index 6378037a9..000000000 --- a/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.xtend +++ /dev/null @@ -1,176 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011, 2016 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.util - -import org.eclipse.emf.codegen.ecore.genmodel.GenClass -import org.eclipse.emf.codegen.ecore.genmodel.GenClassifier -import org.eclipse.emf.codegen.ecore.genmodel.GenDataType -import org.eclipse.emf.codegen.ecore.genmodel.GenEnum -import org.eclipse.emf.codegen.ecore.genmodel.GenFeature -import org.eclipse.emf.codegen.ecore.genmodel.GenModel -import org.eclipse.emf.codegen.ecore.genmodel.GenPackage -import org.eclipse.emf.ecore.EClass -import org.eclipse.emf.ecore.EClassifier -import org.eclipse.emf.ecore.EDataType -import org.eclipse.emf.ecore.EEnum -import org.eclipse.emf.ecore.EObject -import org.eclipse.emf.ecore.EPackage -import org.eclipse.emf.ecore.EStructuralFeature -import org.eclipse.emf.ecore.EcorePackage -import org.eclipse.emf.ecore.plugin.EcorePlugin -import org.eclipse.emf.ecore.resource.Resource -import org.eclipse.emf.ecore.resource.ResourceSet -import org.eclipse.xtext.xtext.generator.ecore.EMFGeneratorFragment2 - -class GenModelUtil2 { - - def static GenClass getGenClass(EClass cls, ResourceSet resourceSet) { - return getGenClassifier(cls, resourceSet) as GenClass - } - - def static GenClassifier getGenClassifier(EClassifier cls, ResourceSet resourceSet) { - val genPackage = getGenPackage(cls.EPackage, resourceSet) - for (genCls : genPackage.genClassifiers) { - if (cls.name == genCls.ecoreClassifier.name) { - return genCls - } - } - throw new RuntimeException('''No GenClassifier named '«cls.name»' found in GenModel «genPackage.eResource.URI»''') - } - - def static GenDataType getGenDataType(EDataType dt, ResourceSet resourceSet) { - return getGenClassifier(dt, resourceSet) as GenDataType - } - - def static GenEnum getGenEnum(EEnum en, ResourceSet resourceSet) { - return getGenClassifier(en, resourceSet) as GenEnum - } - - def static GenFeature getGenFeature(EStructuralFeature feature, ResourceSet resourceSet) { - val genCls = getGenClassifier(feature.EContainingClass, resourceSet) as GenClass - for (genFeat : genCls.genFeatures) { - if (feature.name == genFeat.ecoreFeature.name) { - return genFeat - } - } - throw new RuntimeException('''No GenFeature named '«feature.name»' found in GenClass '«genCls»' from GenModel«genCls.eResource.URI»''') - } - - def static GenPackage getGenPackage(EPackage pkg, ResourceSet resourceSet) { - val nsURI = pkg.nsURI - var String location - if (pkg.eResource?.URI !== null) - location = pkg.eResource.URI.toString - val genModelResource = getGenModelResource(location, nsURI, resourceSet) - if (genModelResource !== null) { - for (model : genModelResource.contents) { - if (model instanceof GenModel) { - val genPkg = model.findGenPackage(pkg) - if (genPkg !== null) { - genPkg.getEcorePackage.getEClassifiers() - return genPkg - } - } - } - throw new RuntimeException('''No GenPackage for NsURI «nsURI» found in «genModelResource.URI»''') - } - throw new RuntimeException('''No GenPackage for NsURI «nsURI».''') - } - - def static Resource getGenModelResource(String locationInfo, String nsURI, ResourceSet resourceSet) { - val genModelURI = EcorePlugin.getEPackageNsURIToGenModelLocationMap(false).get(nsURI) - if (genModelURI === null) { - if (EcorePackage.eNS_URI == nsURI) // If we really want to use the registered ecore ... - return null // look into the resource set to find a genpackage for the given URI - for (res : resourceSet.resources) { - // We only look into the first level, as genmodels are usually among the top level elements. - // This is just to avoid traversing all eobjects in the resource set. - for (obj : res.contents) { - if (obj instanceof GenModel) { - for (genPackage : obj.genPackages) { - if (genPackage.NSURI == nsURI) { - return genPackage.eResource - } - } - } - } - } - throw new RuntimeException(''' - Could not find a GenModel for EPackage '«nsURI»'«IF !locationInfo.nullOrEmpty» from «locationInfo»«ENDIF». - If the missing GenModel has been generated via «EMFGeneratorFragment2.simpleName», make sure to run it first in the workflow. - If you have a *.genmodel-file, make sure to register it via StandaloneSetup.registerGenModelFile(String). - ''') - } - if (resourceSet === null) - throw new RuntimeException('''There is no ResourceSet for EPackage '«nsURI»'. Please make sure the EPackage has been loaded from a .ecore file and not from the generated Java file.''') - val genModelResource = resourceSet.getResource(genModelURI, true) - if (genModelResource === null) - throw new RuntimeException('''Error loading GenModel «genModelURI»''') - for (EObject content : genModelResource.contents) { - if (content instanceof GenModel) - content.reconcile() - } - return genModelResource - } - - def static String getPackageLiteral() { - 'eINSTANCE' - } - - def static String getIntLiteral(EClass clazz, EStructuralFeature feature, ResourceSet resourceSet) { - getGenClass(clazz, resourceSet).getFeatureID(getGenFeature(feature, resourceSet)) - } - - def static String getIntLiteral(EClassifier classifier, ResourceSet resourceSet) { - getGenClassifier(classifier, resourceSet).classifierID - } - - def static String getTypeLiteral(EClassifier classifier, ResourceSet resourceSet) { - val genClassifier = getGenClassifier(classifier, resourceSet) - if (genClassifier.genPackage.isLiteralsInterface) - return 'Literals.' + genClassifier.classifierID - else - return 'eINSTANCE.get' + genClassifier.classifierAccessorName + '()' - } - - def static String getFeatureLiteral(EStructuralFeature feature, ResourceSet resourceSet) { - return getFeatureLiteral(getGenFeature(feature, resourceSet), resourceSet) - } - - def static String getFeatureLiteral(GenFeature genFeature, ResourceSet resourceSet) { - if (genFeature.genPackage.isLiteralsInterface) - return 'Literals.' + genFeature.genClass.getFeatureID(genFeature) - else - return 'eINSTANCE.get' + genFeature.featureAccessorName + '()' - } - - def static String getJavaTypeName(EClassifier classifier, ResourceSet resourceSet) { - val genClassifier = getGenClassifier(classifier, resourceSet) - if (genClassifier instanceof GenClass) - return genClassifier.qualifiedInterfaceName - else - return (genClassifier as GenDataType).qualifiedInstanceClassName - } - - def static String getGetAccessor(EStructuralFeature feature, ResourceSet resourceSet) { - return getGetAccessor(getGenFeature(feature, resourceSet), resourceSet) - } - - def static String getGetAccessor(GenFeature genFeature, ResourceSet resourceSet) { - val genClass = genFeature.genClass - if (genClass.isMapEntry) { - if (genFeature == genClass.mapEntryKeyFeature) - return 'getKey' - if (genFeature == genClass.mapEntryValueFeature) - return 'getValue' - } - return genFeature.getAccessor - } - -} diff --git a/org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.java b/org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.java deleted file mode 100644 index 1c2b097f4..000000000 --- a/org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/util/GenModelUtil2.java +++ /dev/null @@ -1,277 +0,0 @@ -/** - * Copyright (c) 2011, 2016 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.util; - -import com.google.common.base.Objects; -import org.eclipse.emf.codegen.ecore.genmodel.GenClass; -import org.eclipse.emf.codegen.ecore.genmodel.GenClassifier; -import org.eclipse.emf.codegen.ecore.genmodel.GenDataType; -import org.eclipse.emf.codegen.ecore.genmodel.GenEnum; -import org.eclipse.emf.codegen.ecore.genmodel.GenFeature; -import org.eclipse.emf.codegen.ecore.genmodel.GenModel; -import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EClassifier; -import org.eclipse.emf.ecore.EDataType; -import org.eclipse.emf.ecore.EEnum; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.ecore.EcorePackage; -import org.eclipse.emf.ecore.plugin.EcorePlugin; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.xbase.lib.StringExtensions; -import org.eclipse.xtext.xtext.generator.ecore.EMFGeneratorFragment2; - -@SuppressWarnings("all") -public class GenModelUtil2 { - public static GenClass getGenClass(final EClass cls, final ResourceSet resourceSet) { - GenClassifier _genClassifier = GenModelUtil2.getGenClassifier(cls, resourceSet); - return ((GenClass) _genClassifier); - } - - public static GenClassifier getGenClassifier(final EClassifier cls, final ResourceSet resourceSet) { - final GenPackage genPackage = GenModelUtil2.getGenPackage(cls.getEPackage(), resourceSet); - EList _genClassifiers = genPackage.getGenClassifiers(); - for (final GenClassifier genCls : _genClassifiers) { - String _name = cls.getName(); - String _name_1 = genCls.getEcoreClassifier().getName(); - boolean _equals = Objects.equal(_name, _name_1); - if (_equals) { - return genCls; - } - } - StringConcatenation _builder = new StringConcatenation(); - _builder.append("No GenClassifier named \'"); - String _name_2 = cls.getName(); - _builder.append(_name_2); - _builder.append("\' found in GenModel "); - URI _uRI = genPackage.eResource().getURI(); - _builder.append(_uRI); - throw new RuntimeException(_builder.toString()); - } - - public static GenDataType getGenDataType(final EDataType dt, final ResourceSet resourceSet) { - GenClassifier _genClassifier = GenModelUtil2.getGenClassifier(dt, resourceSet); - return ((GenDataType) _genClassifier); - } - - public static GenEnum getGenEnum(final EEnum en, final ResourceSet resourceSet) { - GenClassifier _genClassifier = GenModelUtil2.getGenClassifier(en, resourceSet); - return ((GenEnum) _genClassifier); - } - - public static GenFeature getGenFeature(final EStructuralFeature feature, final ResourceSet resourceSet) { - GenClassifier _genClassifier = GenModelUtil2.getGenClassifier(feature.getEContainingClass(), resourceSet); - final GenClass genCls = ((GenClass) _genClassifier); - EList _genFeatures = genCls.getGenFeatures(); - for (final GenFeature genFeat : _genFeatures) { - String _name = feature.getName(); - String _name_1 = genFeat.getEcoreFeature().getName(); - boolean _equals = Objects.equal(_name, _name_1); - if (_equals) { - return genFeat; - } - } - StringConcatenation _builder = new StringConcatenation(); - _builder.append("No GenFeature named \'"); - String _name_2 = feature.getName(); - _builder.append(_name_2); - _builder.append("\' found in GenClass \'"); - _builder.append(genCls); - _builder.append("\' from GenModel"); - URI _uRI = genCls.eResource().getURI(); - _builder.append(_uRI); - throw new RuntimeException(_builder.toString()); - } - - public static GenPackage getGenPackage(final EPackage pkg, final ResourceSet resourceSet) { - final String nsURI = pkg.getNsURI(); - String location = null; - Resource _eResource = pkg.eResource(); - URI _uRI = null; - if (_eResource!=null) { - _uRI=_eResource.getURI(); - } - boolean _tripleNotEquals = (_uRI != null); - if (_tripleNotEquals) { - location = pkg.eResource().getURI().toString(); - } - final Resource genModelResource = GenModelUtil2.getGenModelResource(location, nsURI, resourceSet); - if ((genModelResource != null)) { - EList _contents = genModelResource.getContents(); - for (final EObject model : _contents) { - if ((model instanceof GenModel)) { - final GenPackage genPkg = ((GenModel)model).findGenPackage(pkg); - if ((genPkg != null)) { - genPkg.getEcorePackage().getEClassifiers(); - return genPkg; - } - } - } - StringConcatenation _builder = new StringConcatenation(); - _builder.append("No GenPackage for NsURI "); - _builder.append(nsURI); - _builder.append(" found in "); - URI _uRI_1 = genModelResource.getURI(); - _builder.append(_uRI_1); - throw new RuntimeException(_builder.toString()); - } - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("No GenPackage for NsURI "); - _builder_1.append(nsURI); - _builder_1.append("."); - throw new RuntimeException(_builder_1.toString()); - } - - public static Resource getGenModelResource(final String locationInfo, final String nsURI, final ResourceSet resourceSet) { - final URI genModelURI = EcorePlugin.getEPackageNsURIToGenModelLocationMap(false).get(nsURI); - if ((genModelURI == null)) { - boolean _equals = Objects.equal(EcorePackage.eNS_URI, nsURI); - if (_equals) { - return null; - } - EList _resources = resourceSet.getResources(); - for (final Resource res : _resources) { - EList _contents = res.getContents(); - for (final EObject obj : _contents) { - if ((obj instanceof GenModel)) { - EList _genPackages = ((GenModel)obj).getGenPackages(); - for (final GenPackage genPackage : _genPackages) { - String _nSURI = genPackage.getNSURI(); - boolean _equals_1 = Objects.equal(_nSURI, nsURI); - if (_equals_1) { - return genPackage.eResource(); - } - } - } - } - } - StringConcatenation _builder = new StringConcatenation(); - _builder.append("Could not find a GenModel for EPackage \'"); - _builder.append(nsURI); - _builder.append("\'"); - { - boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(locationInfo); - boolean _not = (!_isNullOrEmpty); - if (_not) { - _builder.append(" from "); - _builder.append(locationInfo); - } - } - _builder.append("."); - _builder.newLineIfNotEmpty(); - _builder.append("If the missing GenModel has been generated via "); - String _simpleName = EMFGeneratorFragment2.class.getSimpleName(); - _builder.append(_simpleName); - _builder.append(", make sure to run it first in the workflow."); - _builder.newLineIfNotEmpty(); - _builder.append("If you have a *.genmodel-file, make sure to register it via StandaloneSetup.registerGenModelFile(String)."); - _builder.newLine(); - throw new RuntimeException(_builder.toString()); - } - if ((resourceSet == null)) { - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("There is no ResourceSet for EPackage \'"); - _builder_1.append(nsURI); - _builder_1.append("\'. Please make sure the EPackage has been loaded from a .ecore file and not from the generated Java file."); - throw new RuntimeException(_builder_1.toString()); - } - final Resource genModelResource = resourceSet.getResource(genModelURI, true); - if ((genModelResource == null)) { - StringConcatenation _builder_2 = new StringConcatenation(); - _builder_2.append("Error loading GenModel "); - _builder_2.append(genModelURI); - throw new RuntimeException(_builder_2.toString()); - } - EList _contents_1 = genModelResource.getContents(); - for (final EObject content : _contents_1) { - if ((content instanceof GenModel)) { - ((GenModel)content).reconcile(); - } - } - return genModelResource; - } - - public static String getPackageLiteral() { - return "eINSTANCE"; - } - - public static String getIntLiteral(final EClass clazz, final EStructuralFeature feature, final ResourceSet resourceSet) { - return GenModelUtil2.getGenClass(clazz, resourceSet).getFeatureID(GenModelUtil2.getGenFeature(feature, resourceSet)); - } - - public static String getIntLiteral(final EClassifier classifier, final ResourceSet resourceSet) { - return GenModelUtil2.getGenClassifier(classifier, resourceSet).getClassifierID(); - } - - public static String getTypeLiteral(final EClassifier classifier, final ResourceSet resourceSet) { - final GenClassifier genClassifier = GenModelUtil2.getGenClassifier(classifier, resourceSet); - boolean _isLiteralsInterface = genClassifier.getGenPackage().isLiteralsInterface(); - if (_isLiteralsInterface) { - String _classifierID = genClassifier.getClassifierID(); - return ("Literals." + _classifierID); - } else { - String _classifierAccessorName = genClassifier.getClassifierAccessorName(); - String _plus = ("eINSTANCE.get" + _classifierAccessorName); - return (_plus + "()"); - } - } - - public static String getFeatureLiteral(final EStructuralFeature feature, final ResourceSet resourceSet) { - return GenModelUtil2.getFeatureLiteral(GenModelUtil2.getGenFeature(feature, resourceSet), resourceSet); - } - - public static String getFeatureLiteral(final GenFeature genFeature, final ResourceSet resourceSet) { - boolean _isLiteralsInterface = genFeature.getGenPackage().isLiteralsInterface(); - if (_isLiteralsInterface) { - String _featureID = genFeature.getGenClass().getFeatureID(genFeature); - return ("Literals." + _featureID); - } else { - String _featureAccessorName = genFeature.getFeatureAccessorName(); - String _plus = ("eINSTANCE.get" + _featureAccessorName); - return (_plus + "()"); - } - } - - public static String getJavaTypeName(final EClassifier classifier, final ResourceSet resourceSet) { - final GenClassifier genClassifier = GenModelUtil2.getGenClassifier(classifier, resourceSet); - if ((genClassifier instanceof GenClass)) { - return ((GenClass)genClassifier).getQualifiedInterfaceName(); - } else { - return ((GenDataType) genClassifier).getQualifiedInstanceClassName(); - } - } - - public static String getGetAccessor(final EStructuralFeature feature, final ResourceSet resourceSet) { - return GenModelUtil2.getGetAccessor(GenModelUtil2.getGenFeature(feature, resourceSet), resourceSet); - } - - public static String getGetAccessor(final GenFeature genFeature, final ResourceSet resourceSet) { - final GenClass genClass = genFeature.getGenClass(); - boolean _isMapEntry = genClass.isMapEntry(); - if (_isMapEntry) { - GenFeature _mapEntryKeyFeature = genClass.getMapEntryKeyFeature(); - boolean _equals = Objects.equal(genFeature, _mapEntryKeyFeature); - if (_equals) { - return "getKey"; - } - GenFeature _mapEntryValueFeature = genClass.getMapEntryValueFeature(); - boolean _equals_1 = Objects.equal(genFeature, _mapEntryValueFeature); - if (_equals_1) { - return "getValue"; - } - } - return genFeature.getGetAccessor(); - } -}