Skip to content

Commit 6cf68d1

Browse files
committed
Improve transition source and target exist error msg, make msg accessible
1 parent 43718d3 commit 6cf68d1

File tree

2 files changed

+29
-16
lines changed

2 files changed

+29
-16
lines changed

src/main/java/de/monticore/scbasis/_cocos/TransitionSourceTargetExists.java

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,34 @@
44
import de.monticore.scbasis._ast.ASTSCTransition;
55
import de.se_rwth.commons.logging.Log;
66

7-
public class TransitionSourceTargetExists implements SCBasisASTSCTransitionCoCo{
8-
9-
public static final String SOURCE_ERROR_CODE = "0xCC103";
10-
public static final String TARGET_ERROR_CODE = "0xCC104";
11-
7+
public class TransitionSourceTargetExists implements SCBasisASTSCTransitionCoCo {
8+
9+
public static final String CANT_FIND_SOURCE_ERROR_CODE = "0xCC103";
10+
public static final String CANT_FIND_TARGET_ERROR_CODE = "0xCC104";
11+
12+
public static final String CANT_FIND_SOURCE_ERROR_MSG = "Cannot resolve source state '%s'.";
13+
public static final String CANT_FIND_TARGET_ERROR_MSG = "Cannot resolve target state '%s'.";
14+
15+
@Deprecated
16+
public static final String SOURCE_ERROR_CODE = CANT_FIND_SOURCE_ERROR_CODE;
17+
@Deprecated
18+
public static final String TARGET_ERROR_CODE = CANT_FIND_TARGET_ERROR_CODE;
19+
1220
@Override
1321
public void check(ASTSCTransition node) {
14-
22+
1523
if (!node.isPresentSourceNameSymbol()) {
16-
Log.error(
17-
SOURCE_ERROR_CODE + " Source state of the transition is missing.",
18-
node.get_SourcePositionStart());
24+
Log.error(CANT_FIND_SOURCE_ERROR_CODE + " " + String.format(CANT_FIND_SOURCE_ERROR_MSG, node.getSourceName()),
25+
node.get_SourcePositionStart(),
26+
node.get_SourcePositionStart()
27+
);
1928
}
20-
29+
2130
if (!node.isPresentTargetNameSymbol()) {
22-
Log.error(
23-
TARGET_ERROR_CODE + " Target state of the transition is missing.",
24-
node.get_SourcePositionStart());
31+
Log.error(CANT_FIND_TARGET_ERROR_CODE + " " + String.format(CANT_FIND_TARGET_ERROR_MSG, node.getSourceName()),
32+
node.get_SourcePositionStart(),
33+
node.get_SourcePositionEnd()
34+
);
2535
}
2636
}
27-
2837
}

src/test/java/de/monticore/cocos/TransitionSourceTargetTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,12 @@ public void testCoCOInvalid() throws IOException {
2828
assertTrue(ast.isPresent(), "InvalidSourceTarget.sc could not be parsed");
2929
check(ast.get());
3030
assertEquals(2, Log.getErrorCount());
31-
assertTrue(Log.getFindings().stream().anyMatch(n -> n.getMsg().contains(TransitionSourceTargetExists.SOURCE_ERROR_CODE)));
32-
assertTrue(Log.getFindings().stream().anyMatch(n -> n.getMsg().contains(TransitionSourceTargetExists.TARGET_ERROR_CODE)));
31+
assertTrue(Log.getFindings().stream().anyMatch(n -> n.getMsg()
32+
.contains(TransitionSourceTargetExists.CANT_FIND_SOURCE_ERROR_CODE))
33+
);
34+
assertTrue(Log.getFindings().stream().anyMatch(n -> n.getMsg()
35+
.contains(TransitionSourceTargetExists.CANT_FIND_TARGET_ERROR_CODE))
36+
);
3337

3438
}
3539

0 commit comments

Comments
 (0)