From 5999eb4433dc5a758674d9c941d97bbaf48d030d Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Wed, 13 Sep 2023 19:04:39 +0200 Subject: fix: hide new node names in generated models --- .../language/semantics/metadata/MetadataCreator.java | 19 ++++++++++++++----- .../language/web/generator/ModelGenerationWorker.java | 3 ++- 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'subprojects') diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/metadata/MetadataCreator.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/metadata/MetadataCreator.java index b6a2cdf0..cc262129 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/metadata/MetadataCreator.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/metadata/MetadataCreator.java @@ -46,27 +46,36 @@ public class MetadataCreator { relationScope = scopeProvider.getScope(problem, ProblemPackage.Literals.ASSERTION__RELATION); } + public static String unnamedNode(int nodeId) { + return "::" + nodeId; + } + public List getNodesMetadata() { - return getNodesMetadata(initializer.getNodeCount()); + return getNodesMetadata(initializer.getNodeCount(), true); } - public List getNodesMetadata(int nodeCount) { + public List getNodesMetadata(int nodeCount, boolean preserveNewNodes) { var nodes = new NodeMetadata[Math.max(initializer.getNodeCount(), nodeCount)]; for (var entry : initializer.getNodeTrace().keyValuesView()) { var node = entry.getOne(); var id = entry.getTwo(); - nodes[id] = getNodeMetadata(node); + nodes[id] = getNodeMetadata(id, node, preserveNewNodes); } for (int i = 0; i < nodes.length; i++) { if (nodes[i] == null) { - var nodeName = "::" + i; + var nodeName = unnamedNode(i); nodes[i] = new NodeMetadata(nodeName, nodeName, NodeKind.IMPLICIT); } } return List.of(nodes); } - private NodeMetadata getNodeMetadata(Node node) { + private NodeMetadata getNodeMetadata(int nodeId, Node node, boolean preserveNewNodes) { + var kind = getNodeKind(node); + if (!preserveNewNodes && kind == NodeKind.NEW) { + var nodeName = unnamedNode(nodeId); + return new NodeMetadata(nodeName, nodeName, NodeKind.IMPLICIT); + } var qualifiedName = getQualifiedName(node); var simpleName = getSimpleName(node, qualifiedName, nodeScope); return new NodeMetadata(qualifiedNameConverter.toString(qualifiedName), diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/generator/ModelGenerationWorker.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/generator/ModelGenerationWorker.java index 1f430da6..e14982a7 100644 --- a/subprojects/language-web/src/main/java/tools/refinery/language/web/generator/ModelGenerationWorker.java +++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/generator/ModelGenerationWorker.java @@ -197,7 +197,8 @@ public class ModelGenerationWorker implements Runnable { model.restore(solutionStore.getSolutions().get(0).version()); cancellationToken.checkCancelled(); metadataCreator.setInitializer(initializer); - var nodesMetadata = metadataCreator.getNodesMetadata(model.getAdapter(ReasoningAdapter.class).getNodeCount()); + var nodesMetadata = metadataCreator.getNodesMetadata(model.getAdapter(ReasoningAdapter.class).getNodeCount(), + false); cancellationToken.checkCancelled(); var relationsMetadata = metadataCreator.getRelationsMetadata(); cancellationToken.checkCancelled(); -- cgit v1.2.3-70-g09d2