From 2dfcb286216419976368ad926f8ac7f018aa2bf9 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 2 Feb 2024 16:28:19 +0100 Subject: refactor(language): name disambiguation * Use fully qualified names starting with :: (as in C++) to unambiguously refer to an element. * Name shadowing within modules. --- .../web/semantics/PartialInterpretation2Json.java | 4 ++-- .../web/semantics/metadata/MetadataCreator.java | 21 ++++++++++----------- 2 files changed, 12 insertions(+), 13 deletions(-) (limited to 'subprojects/language-web/src') diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/PartialInterpretation2Json.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/PartialInterpretation2Json.java index efe04592..ff811033 100644 --- a/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/PartialInterpretation2Json.java +++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/PartialInterpretation2Json.java @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023 The Refinery Authors + * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors * * SPDX-License-Identifier: EPL-2.0 */ @@ -32,7 +32,7 @@ public class PartialInterpretation2Json { var relation = entry.getKey(); var partialSymbol = entry.getValue(); var tuples = getTuplesJson(facade, partialSymbol); - var name = semanticsUtils.getName(relation).orElse(partialSymbol.name()); + var name = semanticsUtils.getNameWithoutRootPrefix(relation).orElse(partialSymbol.name()); json.add(name, tuples); cancellationToken.checkCancelled(); } 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 1f49b0d0..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; import com.google.inject.Inject; import com.google.inject.Provider; +import com.google.inject.name.Named; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameProvider; @@ -14,6 +15,7 @@ import org.eclipse.xtext.naming.QualifiedName; import org.eclipse.xtext.scoping.IScope; import org.eclipse.xtext.scoping.IScopeProvider; import tools.refinery.language.model.problem.*; +import tools.refinery.language.naming.ProblemQualifiedNameProvider; import tools.refinery.language.semantics.ProblemTrace; import tools.refinery.language.semantics.TracedException; import tools.refinery.language.utils.ProblemUtil; @@ -32,6 +34,7 @@ public class MetadataCreator { private IScopeProvider scopeProvider; @Inject + @Named(ProblemQualifiedNameProvider.NAMED_DELEGATE) private IQualifiedNameProvider qualifiedNameProvider; @Inject @@ -122,17 +125,13 @@ public class MetadataCreator { if (ProblemUtil.isBuiltIn(relation) && !ProblemUtil.isError(relation)) { return getBuiltInDetail(); } - if (relation instanceof ClassDeclaration classDeclaration) { - return getClassDetail(classDeclaration); - } else if (relation instanceof ReferenceDeclaration) { - return getReferenceDetail(partialRelation); - } else if (relation instanceof EnumDeclaration) { - return getEnumDetail(); - } else if (relation instanceof PredicateDefinition predicateDefinition) { - return getPredicateDetail(predicateDefinition); - } else { - throw new TracedException(relation, "Unknown relation"); - } + return switch (relation) { + case ClassDeclaration classDeclaration -> getClassDetail(classDeclaration); + case ReferenceDeclaration ignored -> getReferenceDetail(partialRelation); + case EnumDeclaration ignored -> getEnumDetail(); + case PredicateDefinition predicateDefinition -> getPredicateDetail(predicateDefinition); + default -> throw new TracedException(relation, "Unknown relation"); + }; } private RelationDetail getBuiltInDetail() { -- cgit v1.2.3-54-g00ecf