diff --git a/src/main/jastadd/XMI/XMIWriter.jadd b/src/main/jastadd/XMI/XMIWriter.jadd index 72d3dd8e8f8db115e222cf0221ccb2bba94b1a91..00c12a32e462196278d1ee2bb9ba7b87282d1f26 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 ac697184ab7e859bb628140cbd087fb647fdc5eb..fab38ac867f4159608c27c829e0760b643c1ca83 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 5c39b142e4d0c49e114b72d445570d6e3c7e97bd..84ed860a3535a53bf799a5eca5f0f5940d196345 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()); }