blob: 013b8093348900dd054bcace499d91c5564b181f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 Bosch Software Innovations GmbH and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* The Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Bosch Software Innovations GmbH - Please refer to git log
*
*******************************************************************************/
package org.eclipse.vorto.fbeditor.internal.validation.validator
import org.eclipse.vorto.fbeditor.internal.validation.SystemMessage
import org.eclipse.vorto.functionblock.Constraint
import org.eclipse.vorto.functionblock.PrimitiveType
class PropertyConstraintMappingValidation {
var errorMsg = SystemMessage.ERROR_CONSTRAINTTYPE_INVALID ;
val String[] intervalArr = #["MAX", "MIN"]
val String[] strArr = #["STRLEN", "REGEX"]
val String[] empty = #[]
private val valueTypeMap = <String, String[]>newHashMap(
'int' -> intervalArr,
'byte' -> intervalArr,
'float' -> intervalArr,
'long' -> intervalArr,
'short' -> intervalArr,
'double' -> intervalArr,
'dateTime' -> intervalArr,
'string' -> strArr,
'boolean' -> empty,
'base64Binary' -> empty
);
def final boolean checkPropertyConstraints(PrimitiveType type, Constraint cons) {
var arr = valueTypeMap.get(type.literal)
if (arr == null || !arr.contains(cons.type.literal)) {
setErrorMessage(SystemMessage.ERROR_CONSTRAINTTYPE_INVALID)
return false
}
true
}
def String getErrorMessage() {
errorMsg
}
private def String setErrorMessage(String err) {
errorMsg = err
}
}