From d5f9271edbcdbb64445e30a5d9da4bd0f9ac37ca Mon Sep 17 00:00:00 2001 From: Johannes Mey <johannes.mey@tu-dresden.de> Date: Sun, 22 Mar 2020 11:09:35 +0100 Subject: [PATCH] add 'literal' attribute to EEnumLiteral type --- src/main/jastadd/XMI/XMIWriter.jadd | 3 +++ src/main/jastadd/ecore.relast | 2 +- src/main/java/de/tudresden/inf/st/e2j/parser/EcoreParser.java | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/jastadd/XMI/XMIWriter.jadd b/src/main/jastadd/XMI/XMIWriter.jadd index 72d3dd8..00c12a3 100644 --- a/src/main/jastadd/XMI/XMIWriter.jadd +++ b/src/main/jastadd/XMI/XMIWriter.jadd @@ -240,6 +240,9 @@ aspect XMIWriter { } // from ENamedElement b.append(" value=\"").append(getValue()).append("\""); + if (getLiteral() != null && !getLiteral().equals("")) { + b.append(" literal=\"").append(getLiteral()).append("\""); + } if (numContainedChildren() == 0) { b.append("/>\n"); diff --git a/src/main/jastadd/ecore.relast b/src/main/jastadd/ecore.relast index ac69718..fab38ac 100644 --- a/src/main/jastadd/ecore.relast +++ b/src/main/jastadd/ecore.relast @@ -11,7 +11,7 @@ EAnnotation : EModelElement ::= <Source:String> Detail:EStringToStringMapEntry*; abstract EClassifier : ENamedElement ::= ETypeParameter* <InstanceClassName:String>; -EEnumLiteral : ENamedElement ::= <Value:int>; +EEnumLiteral : ENamedElement ::= <Value:int> <Literal:String>; abstract ETypedElement : ENamedElement ::= [EGenericType] <Ordered:boolean> <Unique:boolean> <LowerBound:int> <UpperBound:int>; EClass : EClassifier ::= EStructuralFeature* EOperation* EGenericSuperType:EGenericType* <Abstract:boolean> <Interface:boolean>; diff --git a/src/main/java/de/tudresden/inf/st/e2j/parser/EcoreParser.java b/src/main/java/de/tudresden/inf/st/e2j/parser/EcoreParser.java index 5c39b14..84ed860 100644 --- a/src/main/java/de/tudresden/inf/st/e2j/parser/EcoreParser.java +++ b/src/main/java/de/tudresden/inf/st/e2j/parser/EcoreParser.java @@ -562,6 +562,9 @@ public class EcoreParser { case "value": eEnumLiteral.setValue(Integer.valueOf(attribute.getValue())); break; + case "literal": + eEnumLiteral.setLiteral(attribute.getValue()); + break; default: logger.warn("ignoring attribute {}:{}", attribute.getName().getPrefix(), attribute.getName().getLocalPart()); } -- GitLab