| /* |
| * generated by Xtext 2.11.0 |
| */ |
| package org.eclipse.osbp.xtext.datainterchange.validation |
| |
| import org.eclipse.xtext.validation.Check |
| import org.eclipse.osbp.xtext.datainterchange.ConditionAndOperator1 |
| import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage |
| import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFilterCondition |
| |
| /** |
| * This class contains custom validation rules. |
| * |
| * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation |
| */ |
| class DataDSLValidator extends AbstractDataDSLValidator { |
| |
| // public static val INVALID_NAME = 'invalidName' |
| // |
| // @Check |
| // def checkGreetingStartsWithCapital(Greeting greeting) { |
| // if (!Character.isUpperCase(greeting.name.charAt(0))) { |
| // warning('Name should start with a capital', |
| // DataDSLPackage.Literals.GREETING__NAME, |
| // INVALID_NAME) |
| // } |
| // } |
| |
| @Check |
| def checkFilterConditionValidity(DataInterchangeFilterCondition condition){ |
| if(condition !== null && condition.getRefProperty !== null && condition.getOperator !== null){ |
| |
| if(condition.getOperator.equals(ConditionAndOperator1.ISNOTNULL) |
| || condition.getOperator.equals(ConditionAndOperator1.ISNULL)){ |
| if(condition.getValue !== null && !condition.getValue.empty){ |
| error("no value option expected/allowed for this condition.", DataDSLPackage.Literals.DATA_INTERCHANGE_FILTER_CONDITION__VALUE, condition.getValue) |
| } |
| } |
| else if(condition.getValue === null && !(condition.getOperator.equals(ConditionAndOperator1.ISNOTNULL) |
| || condition.getOperator.equals(ConditionAndOperator1.ISNULL))){ |
| error("value option missing for this condition.", DataDSLPackage.Literals.DATA_INTERCHANGE_FILTER_CONDITION__VALUE, condition.getValue) |
| } |
| //no value needed |
| } |
| } |
| } |