aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/MetadataCreator.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/MetadataCreator.java')
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/MetadataCreator.java29
1 files changed, 13 insertions, 16 deletions
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/MetadataCreator.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/MetadataCreator.java
index f05abc45..1858fc87 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/MetadataCreator.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/MetadataCreator.java
@@ -7,6 +7,7 @@ package tools.refinery.language.web.semantics.metadata;
7 7
8import com.google.inject.Inject; 8import com.google.inject.Inject;
9import com.google.inject.Provider; 9import com.google.inject.Provider;
10import com.google.inject.name.Named;
10import org.eclipse.emf.ecore.EObject; 11import org.eclipse.emf.ecore.EObject;
11import org.eclipse.xtext.naming.IQualifiedNameConverter; 12import org.eclipse.xtext.naming.IQualifiedNameConverter;
12import org.eclipse.xtext.naming.IQualifiedNameProvider; 13import org.eclipse.xtext.naming.IQualifiedNameProvider;
@@ -14,6 +15,7 @@ import org.eclipse.xtext.naming.QualifiedName;
14import org.eclipse.xtext.scoping.IScope; 15import org.eclipse.xtext.scoping.IScope;
15import org.eclipse.xtext.scoping.IScopeProvider; 16import org.eclipse.xtext.scoping.IScopeProvider;
16import tools.refinery.language.model.problem.*; 17import tools.refinery.language.model.problem.*;
18import tools.refinery.language.naming.ProblemQualifiedNameProvider;
17import tools.refinery.language.semantics.ProblemTrace; 19import tools.refinery.language.semantics.ProblemTrace;
18import tools.refinery.language.semantics.TracedException; 20import tools.refinery.language.semantics.TracedException;
19import tools.refinery.language.utils.ProblemUtil; 21import tools.refinery.language.utils.ProblemUtil;
@@ -32,6 +34,7 @@ public class MetadataCreator {
32 private IScopeProvider scopeProvider; 34 private IScopeProvider scopeProvider;
33 35
34 @Inject 36 @Inject
37 @Named(ProblemQualifiedNameProvider.NAMED_DELEGATE)
35 private IQualifiedNameProvider qualifiedNameProvider; 38 private IQualifiedNameProvider qualifiedNameProvider;
36 39
37 @Inject 40 @Inject
@@ -87,14 +90,12 @@ public class MetadataCreator {
87 } 90 }
88 91
89 private NodeKind getNodeKind(Node node) { 92 private NodeKind getNodeKind(Node node) {
90 if (ProblemUtil.isImplicitNode(node)) { 93 if (ProblemUtil.isAtomNode(node)) {
91 return NodeKind.IMPLICIT;
92 } else if (ProblemUtil.isIndividualNode(node)) {
93 return NodeKind.INDIVIDUAL; 94 return NodeKind.INDIVIDUAL;
94 } else if (ProblemUtil.isNewNode(node)) { 95 } else if (ProblemUtil.isMultiNode(node)) {
95 return NodeKind.NEW; 96 return NodeKind.NEW;
96 } else { 97 } else {
97 throw new TracedException(node, "Unknown node type"); 98 return NodeKind.IMPLICIT;
98 } 99 }
99 } 100 }
100 101
@@ -124,17 +125,13 @@ public class MetadataCreator {
124 if (ProblemUtil.isBuiltIn(relation) && !ProblemUtil.isError(relation)) { 125 if (ProblemUtil.isBuiltIn(relation) && !ProblemUtil.isError(relation)) {
125 return getBuiltInDetail(); 126 return getBuiltInDetail();
126 } 127 }
127 if (relation instanceof ClassDeclaration classDeclaration) { 128 return switch (relation) {
128 return getClassDetail(classDeclaration); 129 case ClassDeclaration classDeclaration -> getClassDetail(classDeclaration);
129 } else if (relation instanceof ReferenceDeclaration) { 130 case ReferenceDeclaration ignored -> getReferenceDetail(partialRelation);
130 return getReferenceDetail(partialRelation); 131 case EnumDeclaration ignored -> getEnumDetail();
131 } else if (relation instanceof EnumDeclaration) { 132 case PredicateDefinition predicateDefinition -> getPredicateDetail(predicateDefinition);
132 return getEnumDetail(); 133 default -> throw new TracedException(relation, "Unknown relation");
133 } else if (relation instanceof PredicateDefinition predicateDefinition) { 134 };
134 return getPredicateDetail(predicateDefinition);
135 } else {
136 throw new TracedException(relation, "Unknown relation");
137 }
138 } 135 }
139 136
140 private RelationDetail getBuiltInDetail() { 137 private RelationDetail getBuiltInDetail() {