Bladeren bron

#250 : Fixed existing validation for regular states

terfloth@itemis.de 14 jaren geleden
bovenliggende
commit
18da3a4add

+ 8 - 13
plugins/org.yakindu.sct.model.statechart/src/org/yakindu/model/sct/statechart/util/StatechartValidator.java

@@ -53,7 +53,8 @@ import org.yakindu.model.sct.statechart.Vertex;
  */
 public class StatechartValidator extends EObjectValidator {
 
-	public static final String ISSUE_NO_INCOMING_TRANSITION = "No incoming transition.";
+	public static final String ISSUE_STATE_WITHOUT_NAME = "A state must have a name.";
+	public static final String ISSUE_NODE_NOT_REACHABLE = "Node is not reachable due to missing incoming transition.";
 	public static final String ISSUE_FINAL_STATE_OUTGOING_TRANSITION = "A final state should have no outgoing transition.";
 	public static final String ISSUE_STATE_WITHOUT_OUTGOING_TRANSITION = "A state should have at least one outgoing transition.";
 
@@ -229,7 +230,7 @@ public class StatechartValidator extends EObjectValidator {
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
 		
 		if (vertex.getIncomingTransitions().size() == 0 && !(vertex instanceof Entry)) {
-			return error(vertex, diagnostics, ISSUE_NO_INCOMING_TRANSITION);
+			return error(vertex, diagnostics, ISSUE_NODE_NOT_REACHABLE);
 		}
 		
 		return true;
@@ -244,9 +245,9 @@ public class StatechartValidator extends EObjectValidator {
 	public boolean validateVertex_OutgoingTransitionCount(Vertex vertex,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
 
-		if (vertex.getOutgoingTransitions().size() == 0 && !(vertex instanceof FinalState)) {
-			return warning(vertex, diagnostics, ISSUE_STATE_WITHOUT_OUTGOING_TRANSITION);
-		} 
+//		if (vertex.getOutgoingTransitions().size() == 0 && !(vertex instanceof FinalState)) {
+//			return warning(vertex, diagnostics, ISSUE_STATE_WITHOUT_OUTGOING_TRANSITION);
+//		} 
 		
 		if ((vertex.getOutgoingTransitions().size() > 0) && (vertex instanceof FinalState)) {
 			return warning(vertex, diagnostics, ISSUE_FINAL_STATE_OUTGOING_TRANSITION);
@@ -372,15 +373,9 @@ public class StatechartValidator extends EObjectValidator {
 	 */
 	public boolean validateState_NameIsNotEmpty(State state,
 			DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if ( (state.getName() == null || state.getName().length() == 0) 
+		if ( (state.getName() == null || state.getName().trim().length() == 0) 
 				&& !(state instanceof FinalState)) {
-			if (diagnostics != null) {
-				diagnostics.add(new BasicDiagnostic(Diagnostic.WARNING,
-						DIAGNOSTIC_SOURCE, 0,
-						"A state should have a name.",
-						new Object[] { state }));
-			}
-			return false;
+			return error(state, diagnostics, ISSUE_STATE_WITHOUT_NAME);
 		}
 		return true;
 	}