diff options
Diffstat (limited to 'subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java')
-rw-r--r-- | subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java b/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java index 3dcf6b1f..8fd60364 100644 --- a/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java +++ b/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java | |||
@@ -8,7 +8,6 @@ package tools.refinery.language.resource; | |||
8 | import com.google.common.collect.ImmutableMap; | 8 | import com.google.common.collect.ImmutableMap; |
9 | import com.google.inject.Inject; | 9 | import com.google.inject.Inject; |
10 | import com.google.inject.Singleton; | 10 | import com.google.inject.Singleton; |
11 | import com.google.inject.name.Named; | ||
12 | import org.eclipse.emf.ecore.EObject; | 11 | import org.eclipse.emf.ecore.EObject; |
13 | import org.eclipse.xtext.EcoreUtil2; | 12 | import org.eclipse.xtext.EcoreUtil2; |
14 | import org.eclipse.xtext.naming.IQualifiedNameConverter; | 13 | import org.eclipse.xtext.naming.IQualifiedNameConverter; |
@@ -19,10 +18,9 @@ import org.eclipse.xtext.resource.IEObjectDescription; | |||
19 | import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy; | 18 | import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy; |
20 | import org.eclipse.xtext.util.IAcceptor; | 19 | import org.eclipse.xtext.util.IAcceptor; |
21 | import tools.refinery.language.documentation.DocumentationCommentParser; | 20 | import tools.refinery.language.documentation.DocumentationCommentParser; |
22 | import tools.refinery.language.naming.ProblemQualifiedNameProvider; | ||
23 | import tools.refinery.language.scoping.imports.ImportCollector; | ||
24 | import tools.refinery.language.model.problem.*; | 21 | import tools.refinery.language.model.problem.*; |
25 | import tools.refinery.language.naming.NamingUtil; | 22 | import tools.refinery.language.naming.NamingUtil; |
23 | import tools.refinery.language.scoping.imports.ImportCollector; | ||
26 | import tools.refinery.language.utils.ProblemUtil; | 24 | import tools.refinery.language.utils.ProblemUtil; |
27 | 25 | ||
28 | import java.util.Map; | 26 | import java.util.Map; |
@@ -32,13 +30,15 @@ import java.util.stream.Collectors; | |||
32 | public class ProblemResourceDescriptionStrategy extends DefaultResourceDescriptionStrategy { | 30 | public class ProblemResourceDescriptionStrategy extends DefaultResourceDescriptionStrategy { |
33 | private static final String DATA_PREFIX = "tools.refinery.language.resource.ProblemResourceDescriptionStrategy."; | 31 | private static final String DATA_PREFIX = "tools.refinery.language.resource.ProblemResourceDescriptionStrategy."; |
34 | 32 | ||
35 | public static final String ARITY = DATA_PREFIX + "ARITY"; | 33 | public static final String TYPE_LIKE = DATA_PREFIX + "ARITY"; |
34 | public static final String TYPE_LIKE_TRUE = "true"; | ||
36 | public static final String ERROR_PREDICATE = DATA_PREFIX + "ERROR_PREDICATE"; | 35 | public static final String ERROR_PREDICATE = DATA_PREFIX + "ERROR_PREDICATE"; |
37 | public static final String ERROR_PREDICATE_TRUE = "true"; | 36 | public static final String ERROR_PREDICATE_TRUE = "true"; |
38 | public static final String SHADOWING_KEY = DATA_PREFIX + "SHADOWING_KEY"; | 37 | public static final String SHADOWING_KEY = DATA_PREFIX + "SHADOWING_KEY"; |
39 | public static final String SHADOWING_KEY_PROBLEM = "problem"; | 38 | public static final String SHADOWING_KEY_PROBLEM = "problem"; |
40 | public static final String SHADOWING_KEY_NODE = "node"; | 39 | public static final String SHADOWING_KEY_NODE = "node"; |
41 | public static final String SHADOWING_KEY_RELATION = "relation"; | 40 | public static final String SHADOWING_KEY_RELATION = "relation"; |
41 | public static final String SHADOWING_KEY_AGGREGATOR = "aggregator"; | ||
42 | public static final String PREFERRED_NAME = DATA_PREFIX + "PREFERRED_NAME"; | 42 | public static final String PREFERRED_NAME = DATA_PREFIX + "PREFERRED_NAME"; |
43 | public static final String PREFERRED_NAME_TRUE = "true"; | 43 | public static final String PREFERRED_NAME_TRUE = "true"; |
44 | public static final String IMPORTS = DATA_PREFIX + "IMPORTS"; | 44 | public static final String IMPORTS = DATA_PREFIX + "IMPORTS"; |
@@ -51,8 +51,7 @@ public class ProblemResourceDescriptionStrategy extends DefaultResourceDescripti | |||
51 | private IQualifiedNameConverter qualifiedNameConverter; | 51 | private IQualifiedNameConverter qualifiedNameConverter; |
52 | 52 | ||
53 | @Inject | 53 | @Inject |
54 | @Named(ProblemQualifiedNameProvider.NAMED_DELEGATE) | 54 | private IQualifiedNameProvider qualifiedNameProvider; |
55 | private IQualifiedNameProvider delegateQualifiedNameProvider; | ||
56 | 55 | ||
57 | @Inject | 56 | @Inject |
58 | private ImportCollector importCollector; | 57 | private ImportCollector importCollector; |
@@ -123,7 +122,7 @@ public class ProblemResourceDescriptionStrategy extends DefaultResourceDescripti | |||
123 | if (problem == null) { | 122 | if (problem == null) { |
124 | return QualifiedName.EMPTY; | 123 | return QualifiedName.EMPTY; |
125 | } | 124 | } |
126 | var qualifiedName = delegateQualifiedNameProvider.getFullyQualifiedName(problem); | 125 | var qualifiedName = qualifiedNameProvider.getFullyQualifiedName(problem); |
127 | return qualifiedName == null ? QualifiedName.EMPTY : qualifiedName; | 126 | return qualifiedName == null ? QualifiedName.EMPTY : qualifiedName; |
128 | } | 127 | } |
129 | 128 | ||
@@ -152,8 +151,11 @@ public class ProblemResourceDescriptionStrategy extends DefaultResourceDescripti | |||
152 | builder.put(SHADOWING_KEY, SHADOWING_KEY_NODE); | 151 | builder.put(SHADOWING_KEY, SHADOWING_KEY_NODE); |
153 | } else if (eObject instanceof Relation relation) { | 152 | } else if (eObject instanceof Relation relation) { |
154 | builder.put(SHADOWING_KEY, SHADOWING_KEY_RELATION); | 153 | builder.put(SHADOWING_KEY, SHADOWING_KEY_RELATION); |
155 | int arity = ProblemUtil.getArity(relation); | 154 | if (ProblemUtil.isTypeLike(relation)) { |
156 | builder.put(ARITY, Integer.toString(arity)); | 155 | builder.put(TYPE_LIKE, TYPE_LIKE_TRUE); |
156 | } | ||
157 | } else if (eObject instanceof AggregatorDeclaration) { | ||
158 | builder.put(SHADOWING_KEY, SHADOWING_KEY_AGGREGATOR); | ||
157 | } | 159 | } |
158 | if (eObject instanceof PredicateDefinition predicateDefinition && predicateDefinition.isError()) { | 160 | if (eObject instanceof PredicateDefinition predicateDefinition && predicateDefinition.isError()) { |
159 | builder.put(ERROR_PREDICATE, ERROR_PREDICATE_TRUE); | 161 | builder.put(ERROR_PREDICATE, ERROR_PREDICATE_TRUE); |