blob: cb8b48e4986437eef6e97349521715b3a2a2940e [file] [log] [blame]
/*
* 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
}
}
}