aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ProblemTrace.java
blob: b8d0b80453d9f6176ab67b23598f6284bb496b81 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
 *
 * SPDX-License-Identifier: EPL-2.0
 */
package tools.refinery.language.semantics;

import org.eclipse.collections.api.map.primitive.ObjectIntMap;
import org.eclipse.xtext.naming.QualifiedName;
import tools.refinery.language.model.problem.Node;
import tools.refinery.language.model.problem.Problem;
import tools.refinery.language.model.problem.Relation;
import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
import tools.refinery.store.reasoning.representation.PartialRelation;
import tools.refinery.store.reasoning.translator.TranslationException;
import tools.refinery.store.reasoning.translator.metamodel.Metamodel;

import java.util.Map;

public interface ProblemTrace {
	Problem getProblem();

	Metamodel getMetamodel();

	ObjectIntMap<Node> getNodeTrace();

	int getNodeId(Node node);

	int getNodeId(QualifiedName qualifiedName);

	int getNodeId(String qualifiedName);

	Map<Relation, PartialRelation> getRelationTrace();

	Map<AnyPartialSymbol, Relation> getInverseRelationTrace();

	Relation getRelation(AnyPartialSymbol partialSymbol);

	RuntimeException wrapException(TranslationException translationException);

	PartialRelation getPartialRelation(Relation relation);

	PartialRelation getPartialRelation(QualifiedName qualifiedName);

	PartialRelation getPartialRelation(String qualifiedName);
}