From a951628de0ce9902222ed290a1345c145f8af01a Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 5 Nov 2021 19:33:25 +0100 Subject: chore: rename unique to individual Suggestion by @vincemolnar to match SysML V2 terminology more closely. --- .../java/tools/refinery/language/Problem.xtext | 8 +++--- .../resource/ProblemLocationInFileProvider.java | 2 +- .../ProblemResourceDescriptionStrategy.java | 2 +- .../language/validation/ProblemValidator.java | 8 +++--- .../language/tests/ProblemParsingTest.xtend | 2 +- .../language/tests/scoping/NodeScopingTest.xtend | 32 +++++++++++----------- 6 files changed, 27 insertions(+), 27 deletions(-) (limited to 'language') diff --git a/language/src/main/java/tools/refinery/language/Problem.xtext b/language/src/main/java/tools/refinery/language/Problem.xtext index 0fa47d63..b7562759 100644 --- a/language/src/main/java/tools/refinery/language/Problem.xtext +++ b/language/src/main/java/tools/refinery/language/Problem.xtext @@ -9,7 +9,7 @@ Problem: Statement: ClassDeclaration | EnumDeclaration | PredicateDefinition | RuleDefinition | Assertion | NodeValueAssertion | ScopeDeclaration | - UniqueDeclaration; + IndividualDeclaration; ClassDeclaration: abstract?="abstract"? "class" @@ -173,8 +173,8 @@ RangeMultiplicity: ExactMultiplicity: exactValue=INT; -UniqueDeclaration: - "unique" nodes+=EnumLiteral ("," nodes+=EnumLiteral)* "."; +IndividualDeclaration: + "individual" nodes+=EnumLiteral ("," nodes+=EnumLiteral)* "."; UpperBound returns ecore::EInt: INT | "*"; @@ -184,7 +184,7 @@ QualifiedName hidden(): Identifier: ID | "true" | "false" | "unknown" | "error" | "class" | "abstract" | "extends" | "enum" | "pred" | - "unique" | "problem" | "new" | "delete"; + "individual" | "problem" | "new" | "delete" | "direct" | "rule"; Integer returns ecore::EInt hidden(): "-"? INT; diff --git a/language/src/main/java/tools/refinery/language/resource/ProblemLocationInFileProvider.java b/language/src/main/java/tools/refinery/language/resource/ProblemLocationInFileProvider.java index b51de05d..7aa75833 100644 --- a/language/src/main/java/tools/refinery/language/resource/ProblemLocationInFileProvider.java +++ b/language/src/main/java/tools/refinery/language/resource/ProblemLocationInFileProvider.java @@ -21,7 +21,7 @@ public class ProblemLocationInFileProvider extends DefaultLocationInFileProvider } protected ITextRegion getNodeTextRegion(Node node, RegionDescription query) { - if (ProblemUtil.isUniqueNode(node)) { + if (ProblemUtil.isIndividualNode(node)) { return super.doGetTextRegion(node, query); } if (ProblemUtil.isNewNode(node)) { diff --git a/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java b/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java index e745b6a5..f86ebd38 100644 --- a/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java +++ b/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java @@ -83,7 +83,7 @@ public class ProblemResourceDescriptionStrategy extends DefaultResourceDescripti } if (eObject instanceof Node node) { // Only enum literals and new nodes are visible across problem files. - return ProblemUtil.isUniqueNode(node) || ProblemUtil.isNewNode(node); + return ProblemUtil.isIndividualNode(node) || ProblemUtil.isNewNode(node); } return true; } diff --git a/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java b/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java index dfd386f5..3c10d39e 100644 --- a/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java +++ b/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java @@ -27,7 +27,7 @@ public class ProblemValidator extends AbstractProblemValidator { public static final String SINGLETON_VARIABLE_ISSUE = ISSUE_PREFIX + "SINGLETON_VARIABLE"; - public static final String NON_UNIQUE_NODE_ISSUE = ISSUE_PREFIX + "NON_UNIQUE_NODE"; + public static final String NON_INDIVIDUAL_NODE_ISSUE = ISSUE_PREFIX + "NON_INDIVIDUAL_NODE"; @Inject private ReferenceCounter referenceCounter; @@ -51,12 +51,12 @@ public class ProblemValidator extends AbstractProblemValidator { @Check public void checkNonUniqueNode(VariableOrNodeArgument argument) { var variableOrNode = argument.getVariableOrNode(); - if (variableOrNode instanceof Node node && !ProblemUtil.isUniqueNode(node)) { + if (variableOrNode instanceof Node node && !ProblemUtil.isIndividualNode(node)) { var name = node.getName(); - var message = "Only unique nodes can be referenced in predicates. Mark '%s' as unique with the declaration 'unique %s.'" + var message = "Only individual nodes can be referenced in predicates. Mark '%s' as individual with the declaration 'individual %s.'" .formatted(name, name); error(message, argument, ProblemPackage.Literals.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE, - INSIGNIFICANT_INDEX, NON_UNIQUE_NODE_ISSUE); + INSIGNIFICANT_INDEX, NON_INDIVIDUAL_NODE_ISSUE); } } } diff --git a/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.xtend b/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.xtend index 99cf0a86..9e357529 100644 --- a/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.xtend +++ b/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.xtend @@ -46,7 +46,7 @@ class ProblemParsingTest { error invalidTaxStatus(Person p) <-> taxStatus(p, child), children(p, _q). - unique family. + individual family. Family(family). members(family, anne): true. members(family, bob). diff --git a/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.xtend b/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.xtend index 5ff7a2c9..5f669847 100644 --- a/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.xtend +++ b/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.xtend @@ -77,50 +77,50 @@ class NodeScopingTest { } @ParameterizedTest - @MethodSource("uniqueNodeReferenceSource") - def void uniqueNodeInAssertionTest(String qualifiedNamePrefix, boolean namedProblem) { + @MethodSource("individualNodeReferenceSource") + def void individualNodeInAssertionTest(String qualifiedNamePrefix, boolean namedProblem) { val it = parseHelper.parse(''' «IF namedProblem»problem test.«ENDIF» - unique a, b. + individual a, b. pred predicate(node x, node y) <-> node(x). predicate(«qualifiedNamePrefix»a, «qualifiedNamePrefix»a). ?predicate(«qualifiedNamePrefix»a, «qualifiedNamePrefix»b). ''') assertThat(errors, empty) assertThat(nodeNames, empty) - assertThat(assertion(0).arg(0).node, equalTo(uniqueNode('a'))) - assertThat(assertion(0).arg(1).node, equalTo(uniqueNode('a'))) - assertThat(assertion(1).arg(0).node, equalTo(uniqueNode('a'))) - assertThat(assertion(1).arg(1).node, equalTo(uniqueNode('b'))) + assertThat(assertion(0).arg(0).node, equalTo(individualNode('a'))) + assertThat(assertion(0).arg(1).node, equalTo(individualNode('a'))) + assertThat(assertion(1).arg(0).node, equalTo(individualNode('a'))) + assertThat(assertion(1).arg(1).node, equalTo(individualNode('b'))) } @ParameterizedTest - @MethodSource("uniqueNodeReferenceSource") - def void uniqueNodeInNodeValueAssertionTest(String qualifiedNamePrefix, boolean namedProblem) { + @MethodSource("individualNodeReferenceSource") + def void individualNodeInNodeValueAssertionTest(String qualifiedNamePrefix, boolean namedProblem) { val it = parseHelper.parse(''' «IF namedProblem»problem test.«ENDIF» - unique a. + individual a. «qualifiedNamePrefix»a: 16. ''') assertThat(errors, empty) assertThat(nodeNames, empty) - assertThat(nodeValueAssertion(0).node, equalTo(uniqueNode('a'))) + assertThat(nodeValueAssertion(0).node, equalTo(individualNode('a'))) } @ParameterizedTest - @MethodSource("uniqueNodeReferenceSource") - def void uniqueNodeInPredicateTest(String qualifiedNamePrefix, boolean namedProblem) { + @MethodSource("individualNodeReferenceSource") + def void individualNodeInPredicateTest(String qualifiedNamePrefix, boolean namedProblem) { val it = parseHelper.parse(''' «IF namedProblem»problem test.«ENDIF» - unique b. + individual b. pred predicate(node a) <-> node(«qualifiedNamePrefix»b). ''') assertThat(errors, empty) assertThat(nodeNames, empty) - assertThat(pred("predicate").conj(0).lit(0).arg(0).node, equalTo(uniqueNode("b"))) + assertThat(pred("predicate").conj(0).lit(0).arg(0).node, equalTo(individualNode("b"))) } - static def uniqueNodeReferenceSource() { + static def individualNodeReferenceSource() { Stream.of( Arguments.of("", false), Arguments.of("", true), -- cgit v1.2.3-54-g00ecf