aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-reasoning/src/main
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-08-13 23:33:03 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-08-13 23:33:03 +0200
commit6b0c83a05cd55d3508ca7dc7d7d1648d602bc613 (patch)
tree64f6fa67f43524ac32c8b552dd1f09c015d5f7eb /subprojects/store-reasoning/src/main
parentfeat: metamodel translator (diff)
downloadrefinery-6b0c83a05cd55d3508ca7dc7d7d1648d602bc613.tar.gz
refinery-6b0c83a05cd55d3508ca7dc7d7d1648d602bc613.tar.zst
refinery-6b0c83a05cd55d3508ca7dc7d7d1648d602bc613.zip
fix: concrete supertype translation
Diffstat (limited to 'subprojects/store-reasoning/src/main')
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslator.java9
1 files changed, 4 insertions, 5 deletions
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslator.java
index 4bff4557..67e8035f 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslator.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslator.java
@@ -45,13 +45,12 @@ public class TypeHierarchyTranslator implements ModelStoreConfiguration {
45 45
46 private ModelStoreConfiguration createPreservedTypeTranslator(PartialRelation type, TypeAnalysisResult result) { 46 private ModelStoreConfiguration createPreservedTypeTranslator(PartialRelation type, TypeAnalysisResult result) {
47 var may = Query.of(type.name() + "#partial#may", (builder, p1) -> { 47 var may = Query.of(type.name() + "#partial#may", (builder, p1) -> {
48 if (result.isAbstractType()) { 48 if (!result.isAbstractType()) {
49 for (var subtype : result.getDirectSubtypes()) {
50 builder.clause(PartialLiterals.may(subtype.call(p1)));
51 }
52 } else {
53 builder.clause(new MayTypeView(typeSymbol, type).call(p1)); 49 builder.clause(new MayTypeView(typeSymbol, type).call(p1));
54 } 50 }
51 for (var subtype : result.getDirectSubtypes()) {
52 builder.clause(PartialLiterals.may(subtype.call(p1)));
53 }
55 }); 54 });
56 55
57 var must = Query.of(type.name() + "#partial#must", (builder, p1) -> builder.clause( 56 var must = Query.of(type.name() + "#partial#must", (builder, p1) -> builder.clause(