Implementing colors collection and mission exit
[des2015.git] / dsl / xtend / src / robots / missions / validation / TaskDSLValidator.xtend
index 67fdc6e..ae4ba7a 100644 (file)
@@ -3,11 +3,13 @@
  */
 package robots.missions.validation
 
-//import org.eclipse.xtext.validation.Check
+import org.eclipse.xtext.validation.Check
+import robots.missions.taskDSL.Mission
 
+//import org.eclipse.xtext.validation.Check
 /**
  * This class contains custom validation rules. 
- *
+ * 
  * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
  */
 class TaskDSLValidator extends AbstractTaskDSLValidator {
@@ -22,4 +24,19 @@ class TaskDSLValidator extends AbstractTaskDSLValidator {
 //                                     INVALID_NAME)
 //             }
 //     }
+       @Check
+       def checkStoppingExpressionShouldHaveOneBehaviourToCollectColor(Mission mission) {
+               var isCollectColorExist = false;
+               if (!mission.se.scond.colors.nullOrEmpty) {
+                       var blist = mission.behaviours;
+                       for (var j = 0; j < blist.size; j++) {
+                               if (!blist.get(j).clcColor.nullOrEmpty) {
+                                       isCollectColorExist = true;
+                               }
+                       }
+               }
+               if (!isCollectColorExist) {
+                       error("Must specify one behaviour to collect color", null)
+               }
+       }
 }