Implementing colors collection and mission exit
[des2015.git] / dsl / xtend / src / robots / missions / validation / TaskDSLValidator.xtend
1 /*
2 * generated by Xtext
3 */
4 package robots.missions.validation
5
6 import org.eclipse.xtext.validation.Check
7 import robots.missions.taskDSL.Mission
8
9 //import org.eclipse.xtext.validation.Check
10 /**
11 * This class contains custom validation rules.
12 *
13 * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
14 */
15 class TaskDSLValidator extends AbstractTaskDSLValidator {
16
17 // public static val INVALID_NAME = 'invalidName'
18 //
19 // @Check
20 // def checkGreetingStartsWithCapital(Greeting greeting) {
21 // if (!Character.isUpperCase(greeting.name.charAt(0))) {
22 // warning('Name should start with a capital',
23 // MyDslPackage.Literals.GREETING__NAME,
24 // INVALID_NAME)
25 // }
26 // }
27 @Check
28 def checkStoppingExpressionShouldHaveOneBehaviourToCollectColor(Mission mission) {
29 var isCollectColorExist = false;
30 if (!mission.se.scond.colors.nullOrEmpty) {
31 var blist = mission.behaviours;
32 for (var j = 0; j < blist.size; j++) {
33 if (!blist.get(j).clcColor.nullOrEmpty) {
34 isCollectColorExist = true;
35 }
36 }
37 }
38 if (!isCollectColorExist) {
39 error("Must specify one behaviour to collect color", null)
40 }
41 }
42 }