diff options
author | Kristóf Marussy <marussy@mit.bme.hu> | 2020-05-20 02:07:37 +0200 |
---|---|---|
committer | Kristóf Marussy <marussy@mit.bme.hu> | 2020-05-20 02:07:37 +0200 |
commit | eb081453e93e6e30c0b6bb92400275529ed3273b (patch) | |
tree | aba071677812e49eb101a429f01f28aa4f58a226 /Framework | |
parent | FIx Boolean export to gml (diff) | |
download | VIATRA-Generator-eb081453e93e6e30c0b6bb92400275529ed3273b.tar.gz VIATRA-Generator-eb081453e93e6e30c0b6bb92400275529ed3273b.tar.zst VIATRA-Generator-eb081453e93e6e30c0b6bb92400275529ed3273b.zip |
Fix attribute export to xmi
Diffstat (limited to 'Framework')
3 files changed, 79 insertions, 56 deletions
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend index cae489e3..85b488eb 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend | |||
@@ -1,7 +1,13 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.ecore2logic | 1 | package hu.bme.mit.inf.dslreasoner.ecore2logic |
2 | 2 | ||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
4 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput | ||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.ContainmentHierarchy | ||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | 8 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem |
4 | import java.util.List | 9 | import java.util.List |
10 | import java.util.Set | ||
5 | import org.eclipse.emf.ecore.EAttribute | 11 | import org.eclipse.emf.ecore.EAttribute |
6 | import org.eclipse.emf.ecore.EClass | 12 | import org.eclipse.emf.ecore.EClass |
7 | import org.eclipse.emf.ecore.EEnum | 13 | import org.eclipse.emf.ecore.EEnum |
@@ -9,10 +15,6 @@ import org.eclipse.emf.ecore.EEnumLiteral | |||
9 | import org.eclipse.emf.ecore.EReference | 15 | import org.eclipse.emf.ecore.EReference |
10 | import org.eclipse.xtend.lib.annotations.Data | 16 | import org.eclipse.xtend.lib.annotations.Data |
11 | import org.eclipse.xtend.lib.annotations.Delegate | 17 | import org.eclipse.xtend.lib.annotations.Delegate |
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
14 | import java.util.Set | ||
15 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.ContainmentHierarchy | ||
16 | 18 | ||
17 | @Data class EcoreMetamodelDescriptor { | 19 | @Data class EcoreMetamodelDescriptor { |
18 | val List<EClass> classes; | 20 | val List<EClass> classes; |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicModelInterpretation.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicModelInterpretation.xtend index 905859eb..cdcbb48a 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicModelInterpretation.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicModelInterpretation.xtend | |||
@@ -3,22 +3,27 @@ package hu.bme.mit.inf.dslreasoner.logic.model.builder | |||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration | 3 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration |
4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement | 4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement |
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDeclaration | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDeclaration |
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration | 7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration |
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type | 9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type |
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration | 10 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration |
9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition | 11 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition |
12 | import java.math.BigDecimal | ||
10 | import java.util.List | 13 | import java.util.List |
14 | import java.util.Map | ||
15 | import java.util.SortedSet | ||
16 | import java.util.TreeSet | ||
11 | 17 | ||
12 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 18 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* |
13 | import java.util.SortedSet | ||
14 | import java.math.BigDecimal | ||
15 | 19 | ||
16 | interface LogicModelInterpretation{ | 20 | interface LogicModelInterpretation { |
17 | 21 | ||
18 | /** | 22 | /** |
19 | * Returns the elements of a type. | 23 | * Returns the elements of a type. |
20 | */ | 24 | */ |
21 | def List<DefinedElement> getElements(Type type) | 25 | def List<DefinedElement> getElements(Type type) |
26 | |||
22 | /** | 27 | /** |
23 | * Returns the interpretation of a function. The parameters and the return values are encoded to primitive java objects defined by the following table: | 28 | * Returns the interpretation of a function. The parameters and the return values are encoded to primitive java objects defined by the following table: |
24 | * <p><table> | 29 | * <p><table> |
@@ -34,6 +39,7 @@ interface LogicModelInterpretation{ | |||
34 | * @return The result of the function call encoded as defined in the table. | 39 | * @return The result of the function call encoded as defined in the table. |
35 | */ | 40 | */ |
36 | def Object getInterpretation(FunctionDeclaration function, Object[] parameterSubstitution) | 41 | def Object getInterpretation(FunctionDeclaration function, Object[] parameterSubstitution) |
42 | |||
37 | /** | 43 | /** |
38 | * Returns the interpretation of a relation. The parameters are encoded to primitive java objects defined by the following table: | 44 | * Returns the interpretation of a relation. The parameters are encoded to primitive java objects defined by the following table: |
39 | * <p><table> | 45 | * <p><table> |
@@ -49,6 +55,7 @@ interface LogicModelInterpretation{ | |||
49 | * @return If the parameter tuple is in the relation. | 55 | * @return If the parameter tuple is in the relation. |
50 | */ | 56 | */ |
51 | def boolean getInterpretation(RelationDeclaration relation, Object[] parameterSubstitution) | 57 | def boolean getInterpretation(RelationDeclaration relation, Object[] parameterSubstitution) |
58 | |||
52 | /** | 59 | /** |
53 | * Returns the interpretation of a constant. The value is encoded to primitive java objects defined by the following table: | 60 | * Returns the interpretation of a constant. The value is encoded to primitive java objects defined by the following table: |
54 | * <p><table> | 61 | * <p><table> |
@@ -63,60 +70,89 @@ interface LogicModelInterpretation{ | |||
63 | * @return The value of the constant encoded as specified in the table. | 70 | * @return The value of the constant encoded as specified in the table. |
64 | */ | 71 | */ |
65 | def Object getInterpretation(ConstantDeclaration constant) | 72 | def Object getInterpretation(ConstantDeclaration constant) |
66 | 73 | ||
67 | /** | 74 | /** |
68 | * Returns all integers relevant to the logic structure. Not all integer is necessarily used. | 75 | * Returns all integers relevant to the logic structure. Not all integer is necessarily used. |
69 | */ | 76 | */ |
70 | def SortedSet<Integer> getAllIntegersInStructure() | 77 | def SortedSet<Integer> getAllIntegersInStructure() |
78 | |||
79 | def Map<TermDescription, Integer> getAllIntegersWithInterpretation() { | ||
80 | allIntegersInStructure.toMap [ integer | | ||
81 | (LogiclanguageFactory.eINSTANCE.createIntLiteral => [value = integer]) as TermDescription | ||
82 | ] | ||
83 | } | ||
84 | |||
71 | /** | 85 | /** |
72 | * Returns all real numbers relevant to the logic structure. Not all integer is necessarily used. | 86 | * Returns all real numbers relevant to the logic structure. Not all integer is necessarily used. |
73 | */ | 87 | */ |
74 | def SortedSet<BigDecimal> getAllRealsInStructure() | 88 | def SortedSet<BigDecimal> getAllRealsInStructure() |
75 | /** | 89 | |
90 | def Map<TermDescription, BigDecimal> getAllRealsWithInterpretation() { | ||
91 | allRealsInStructure.toMap [ real | | ||
92 | (LogiclanguageFactory.eINSTANCE.createRealLiteral => [value = real]) as TermDescription | ||
93 | ] | ||
94 | } | ||
95 | |||
96 | /** | ||
76 | * Returns all string values relevant to the logic structure. Not all integer is necessarily used. | 97 | * Returns all string values relevant to the logic structure. Not all integer is necessarily used. |
77 | */ | 98 | */ |
78 | def SortedSet<String> getAllStringsInStructure() | 99 | def SortedSet<String> getAllStringsInStructure() |
100 | |||
101 | def Map<TermDescription, String> getAllStringsWithInterpretation() { | ||
102 | allStringsInStructure.toMap [ string | | ||
103 | (LogiclanguageFactory.eINSTANCE.createStringLiteral => [value = string]) as TermDescription | ||
104 | ] | ||
105 | } | ||
106 | |||
107 | def SortedSet<Boolean> getAllBooleansInStructure() { | ||
108 | new TreeSet(#{true, false}) | ||
109 | } | ||
110 | |||
111 | def Map<TermDescription, Boolean> getAllBooleansWithInterpretation() { | ||
112 | allBooleansInStructure.toMap [ bool | | ||
113 | (LogiclanguageFactory.eINSTANCE.createBoolLiteral => [value = bool]) as TermDescription | ||
114 | ] | ||
115 | } | ||
79 | } | 116 | } |
80 | 117 | ||
81 | class Uninterpreted implements LogicModelInterpretation { | 118 | class Uninterpreted implements LogicModelInterpretation { |
82 | /*private val static unknownBecauseUninterpreted = LogiclanguageFactory.eINSTANCE.createUnknownBecauseUninterpreted | 119 | /*private val static unknownBecauseUninterpreted = LogiclanguageFactory.eINSTANCE.createUnknownBecauseUninterpreted |
83 | public def static getUnknownBecauseUninterpreted() {return Uninterpreted.unknownBecauseUninterpreted}*/ | 120 | public def static getUnknownBecauseUninterpreted() {return Uninterpreted.unknownBecauseUninterpreted}*/ |
84 | |||
85 | override getElements(Type type) { | 121 | override getElements(Type type) { |
86 | throw new UnsupportedOperationException("The interpteration is unknown.") | 122 | throw new UnsupportedOperationException("The interpteration is unknown.") |
87 | } | 123 | } |
88 | 124 | ||
89 | def getKnownElements(Type type) { | 125 | def getKnownElements(Type type) { |
90 | val allSubtypes = type.transitiveClosureStar[it.subtypes] | 126 | val allSubtypes = type.transitiveClosureStar[it.subtypes] |
91 | return allSubtypes.filter(TypeDefinition).map[elements].flatten.toList | 127 | return allSubtypes.filter(TypeDefinition).map[elements].flatten.toList |
92 | } | 128 | } |
93 | 129 | ||
94 | def allElementsAreInterpreted(Type type) { | 130 | def allElementsAreInterpreted(Type type) { |
95 | val allSubtypes = type.transitiveClosureStar[it.subtypes] | 131 | val allSubtypes = type.transitiveClosureStar[it.subtypes] |
96 | return allSubtypes.exists[it instanceof TypeDeclaration] | 132 | return allSubtypes.exists[it instanceof TypeDeclaration] |
97 | } | 133 | } |
98 | 134 | ||
99 | override getInterpretation(FunctionDeclaration function, Object[] parameterSubstitution) { | 135 | override getInterpretation(FunctionDeclaration function, Object[] parameterSubstitution) { |
100 | throw new UnsupportedOperationException("The interpteration is unknown.") | 136 | throw new UnsupportedOperationException("The interpteration is unknown.") |
101 | } | 137 | } |
102 | 138 | ||
103 | override getInterpretation(RelationDeclaration relation, Object[] parameterSubstitution) { | 139 | override getInterpretation(RelationDeclaration relation, Object[] parameterSubstitution) { |
104 | throw new UnsupportedOperationException("The interpteration is unknown.") | 140 | throw new UnsupportedOperationException("The interpteration is unknown.") |
105 | } | 141 | } |
106 | 142 | ||
107 | override getInterpretation(ConstantDeclaration constant) { | 143 | override getInterpretation(ConstantDeclaration constant) { |
108 | throw new UnsupportedOperationException("The interpteration is unknown.") | 144 | throw new UnsupportedOperationException("The interpteration is unknown.") |
109 | } | 145 | } |
110 | 146 | ||
111 | override getAllIntegersInStructure() { | 147 | override getAllIntegersInStructure() { |
112 | throw new UnsupportedOperationException("The interpteration is unknown.") | 148 | throw new UnsupportedOperationException("The interpteration is unknown.") |
113 | } | 149 | } |
114 | 150 | ||
115 | override getAllRealsInStructure() { | 151 | override getAllRealsInStructure() { |
116 | throw new UnsupportedOperationException("The interpteration is unknown.") | 152 | throw new UnsupportedOperationException("The interpteration is unknown.") |
117 | } | 153 | } |
118 | 154 | ||
119 | override getAllStringsInStructure() { | 155 | override getAllStringsInStructure() { |
120 | throw new UnsupportedOperationException("The interpteration is unknown.") | 156 | throw new UnsupportedOperationException("The interpteration is unknown.") |
121 | } | 157 | } |
122 | } \ No newline at end of file | 158 | } |
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend index 08c6b7b7..8d6b565a 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend | |||
@@ -3,25 +3,24 @@ package hu.bme.mit.inf.dslreasoner.logic2ecore | |||
3 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | 3 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic |
4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace | 4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace |
5 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation |
6 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder | 7 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder |
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription | ||
9 | import java.math.BigDecimal | ||
7 | import java.util.Collection | 10 | import java.util.Collection |
8 | import java.util.HashMap | 11 | import java.util.HashMap |
9 | import java.util.HashSet | 12 | import java.util.HashSet |
10 | import java.util.List | 13 | import java.util.List |
14 | import java.util.Map | ||
11 | import java.util.Set | 15 | import java.util.Set |
12 | import org.eclipse.emf.ecore.EClass | 16 | import org.eclipse.emf.ecore.EClass |
17 | import org.eclipse.emf.ecore.EDataType | ||
18 | import org.eclipse.emf.ecore.EEnum | ||
13 | import org.eclipse.emf.ecore.EObject | 19 | import org.eclipse.emf.ecore.EObject |
14 | import org.eclipse.emf.ecore.EStructuralFeature | 20 | import org.eclipse.emf.ecore.EStructuralFeature |
21 | import org.eclipse.emf.ecore.EcorePackage | ||
15 | 22 | ||
16 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 23 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* |
17 | import org.eclipse.emf.ecore.EEnum | ||
18 | import org.eclipse.emf.ecore.EDataType | ||
19 | import org.eclipse.emf.ecore.EcorePackage | ||
20 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription | ||
21 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
22 | import java.util.Map | ||
23 | import org.eclipse.emf.ecore.EAttribute | ||
24 | import java.math.BigDecimal | ||
25 | 24 | ||
26 | class Logic2Ecore { | 25 | class Logic2Ecore { |
27 | val extension LogicStructureBuilder structureBuilder = new LogicStructureBuilder | 26 | val extension LogicStructureBuilder structureBuilder = new LogicStructureBuilder |
@@ -86,15 +85,15 @@ class Logic2Ecore { | |||
86 | if(attributeType.EContainingClass.isSuperTypeOf(sourceObject.eClass)) { | 85 | if(attributeType.EContainingClass.isSuperTypeOf(sourceObject.eClass)) { |
87 | val allElementsOfTargetDatatype = getAllElementsOfDatatype(attributeType.EAttributeType,forwardTrace,interpretation) | 86 | val allElementsOfTargetDatatype = getAllElementsOfDatatype(attributeType.EAttributeType,forwardTrace,interpretation) |
88 | for(l : allElementsOfTargetDatatype.entrySet) { | 87 | for(l : allElementsOfTargetDatatype.entrySet) { |
89 | val expression = ecore2Logic.IsAttributeValue(forwardTrace,sourceElement,l.value,attributeType) | 88 | val expression = ecore2Logic.IsAttributeValue(forwardTrace,sourceElement,l.key,attributeType) |
90 | val linkExist = interpretation.evalAsBool(expression) | 89 | val linkExist = interpretation.evalAsBool(expression) |
91 | if(linkExist) { | 90 | if(linkExist) { |
92 | if(attributeType.isMany) { | 91 | if(attributeType.isMany) { |
93 | val list = sourceObject.eGet(attributeType) as List<? super Object> | 92 | val list = sourceObject.eGet(attributeType) as List<? super Object> |
94 | list += l.key | 93 | list += l.value |
95 | } else { | 94 | } else { |
96 | try { | 95 | try { |
97 | sourceObject.eSet(attributeType,translateType(attributeType.EAttributeType,l.key)) | 96 | sourceObject.eSet(attributeType,translateType(attributeType.EAttributeType,l.value)) |
98 | } catch(Exception e) { | 97 | } catch(Exception e) { |
99 | e.printStackTrace | 98 | e.printStackTrace |
100 | } | 99 | } |
@@ -119,34 +118,20 @@ class Logic2Ecore { | |||
119 | } else return value | 118 | } else return value |
120 | } | 119 | } |
121 | 120 | ||
122 | 121 | protected dispatch def Map<? extends TermDescription, ? extends Object> getAllElementsOfDatatype(EEnum type, Ecore2Logic_Trace forwardTrace, LogicModelInterpretation interpretation) { | |
123 | // if(attributeType.EAttributeType.isSuperTypeOf(targetObject.eClass)) { | 122 | ecore2Logic.allLiteralsInScope(forwardTrace).toMap[ecore2Logic.Literal(forwardTrace,it)] |
124 | // val expression = ecore2Logic.IsAttributeValue(forwardTrace,sourceElement,targetElement,attributeType) | ||
125 | // val linkExist = interpretation.evalAsBool(expression) | ||
126 | // if(linkExist) { | ||
127 | // if(attributeType.isMany) { | ||
128 | // val list = sourceObject.eGet(attributeType) as List<? super EObject> | ||
129 | // list+= targetObject | ||
130 | // } else { | ||
131 | // sourceObject.eSet(referenceType,targetObject) | ||
132 | // } | ||
133 | // } | ||
134 | // } | ||
135 | |||
136 | protected dispatch def Map<? extends Object, ? extends TermDescription> getAllElementsOfDatatype(EEnum type, Ecore2Logic_Trace forwardTrace, LogicModelInterpretation interpretation) { | ||
137 | ecore2Logic.allLiteralsInScope(forwardTrace).toInvertedMap[ecore2Logic.Literal(forwardTrace,it)] | ||
138 | } | 123 | } |
139 | 124 | ||
140 | protected dispatch def Map<? extends Object, ? extends TermDescription> getAllElementsOfDatatype(EDataType primitive, Ecore2Logic_Trace forwardTrace, LogicModelInterpretation interpretation) { | 125 | protected dispatch def Map<? extends TermDescription, ? extends Object> getAllElementsOfDatatype(EDataType primitive, Ecore2Logic_Trace forwardTrace, LogicModelInterpretation interpretation) { |
141 | val extension LogicProblemBuilder b = new LogicProblemBuilder | 126 | val extension LogicProblemBuilder b = new LogicProblemBuilder |
142 | if(primitive === EcorePackage.eINSTANCE.EInt || primitive === EcorePackage.eINSTANCE.EShort || primitive === EcorePackage.eINSTANCE.ELong) { | 127 | if(primitive === EcorePackage.eINSTANCE.EInt || primitive === EcorePackage.eINSTANCE.EShort || primitive === EcorePackage.eINSTANCE.ELong) { |
143 | interpretation.allIntegersInStructure.toInvertedMap[it.asTerm] | 128 | interpretation.allIntegersWithInterpretation |
144 | } else if(primitive === EcorePackage.eINSTANCE.EDouble || primitive === EcorePackage.eINSTANCE.EFloat) { | 129 | } else if(primitive === EcorePackage.eINSTANCE.EDouble || primitive === EcorePackage.eINSTANCE.EFloat) { |
145 | interpretation.allRealsInStructure.toInvertedMap[it.asTerm] | 130 | interpretation.allRealsWithInterpretation |
146 | } else if(primitive === EcorePackage.eINSTANCE.EString) { | 131 | } else if(primitive === EcorePackage.eINSTANCE.EString) { |
147 | interpretation.allStringsInStructure.toInvertedMap[it.asTerm] | 132 | interpretation.allStringsWithInterpretation |
148 | } else if(primitive === EcorePackage.eINSTANCE.EBoolean) { | 133 | } else if(primitive === EcorePackage.eINSTANCE.EBoolean) { |
149 | return #[false,true].toInvertedMap[it.asTerm] | 134 | interpretation.allBooleansWithInterpretation |
150 | } | 135 | } |
151 | } | 136 | } |
152 | 137 | ||