
extensions.Validation.ext Maven / Gradle / Ivy
The newest version!
import guidesign;
import guidesign::types;
import pom;
import core;
import dom;
extension extensions::Expression;
extension org::openxma::dsl::common::extensions::LogUtil;
String getValueAsString(ParameterValue pv):
(pv.isNull)
? null
: ((IntegerParameterValue.isInstance(pv))
? ((IntegerParameterValue)pv).intValue.toString()
: ((StringParameterValue.isInstance(pv))
? ((StringParameterValue)pv).stringValue
: ((BooleanParameterValue.isInstance(pv))
? ((BooleanParameterValue)pv).booleanValue.toString()
: null)))
;
String toCustomString(ParameterDefinition pd):
let str = pd.name+"("+pd.type.toString()+")":
str;
String toCustomString(ParameterValue pv):
let str = (pv.referencedParameter == null)
? pv.getValueAsString()
: "->"+pv.referencedParameter.name:
str;
/*
* Create an informative string for DataTypeAndTypeParameter for logging
*
*/
String toCustomString(DataTypeAndTypeParameter tp):
let bt = ((SimpleType)tp.dataType).typeDefinition.definition.dataType:
let bv = ((SimpleType)tp.dataType).validatorReference.validator:
let str = tp.dataType.id()+
" PDef: "+((SimpleType)tp.dataType).typeParameter.toCustomString()+
" PVal: "+tp.parameterValues.toCustomString()+
((bt != null) ? " >>(DataType) "+bt.id(): "" )+
((bv != null) ? " >>(Validator) "+bv.id(): ""):
str;
//
String getParameterValue(ParameterValue pv, List[ReferenceWithParameter] definitionStack, Integer stackIndex):
//log("ParameterValue: value="+pv.getValueAsString()+", ref="+pv.referencedParameter.name)->
(pv.referencedParameter == null)
? pv.getValueAsString()
: pv.referencedParameter.getValueOfReferencedParameter(definitionStack,stackIndex)
;
String getValueOfReferencedParameter(ParameterDefinition pd, List[ReferenceWithParameter] definitionStack, Integer stackIndex):
let currentDefinition = definitionStack.get(stackIndex):
let parameters = currentDefinition.parameterValues:
let parameterDefs = currentDefinition.getParameterDefinitions():
let def = parameterDefs.selectFirst(e|e.name == pd.name):
let index = parameterDefs.indexOf(def):
//log("Parent-definition found: "+def.name+", index: "+index.toString())->
(def != null)
? parameters.getParameterValueForIndex(index,definitionStack,stackIndex-1)
: getValueOfReferencedParameter(pd,definitionStack,stackIndex-1)
;
String getParameterValueForIndex(List[ParameterValue] parameters, Integer index,List[ReferenceWithParameter] definitionStack, Integer stackIndex):
(index > -1 && parameters.size > index)
? parameters.get(index).getParameterValue(definitionStack,stackIndex)
: null;
//
String getValueForIndex(List[String] stringList, Integer index):
(stringList.size>index && stringList.get(index) != null)
? stringList.get(index)
: ""
;
/*
* See: validator I18NEnumerationValidator(string dataSourcePrefix, string dataSourceName)
*/
cached String getXMADomainSpezification(DataTypeAndTypeParameter dataTypeAndTypeParameter):
let definitionStack = dataTypeAndTypeParameter.getDefinitionStack():
let validatorReference = dataTypeAndTypeParameter.getValidatorReferenceDefinition():
let parameterValues = validatorReference.parameterValues.getParameterValue(definitionStack,definitionStack.size-1):
let dataSourcePrefix = parameterValues.getValueForIndex(0):
let dataSourceName = parameterValues.getValueForIndex(1):
let spezification = (dataSourceName.length != 0)
? dataSourcePrefix+dataSourceName
: null:
spezification;
/**
* Get the information whether the SimpleType is a isI18NEnumeration.
* This means that it is a "domain"-type in XMA.
*/
cached boolean isI18NEnumeration(DataTypeAndTypeParameter dataTypeAndTypeParameter):
let validatorReference = getValidatorReferenceDefinition(dataTypeAndTypeParameter):
let validatorName = validatorReference.validator.name:
(validatorName == "I18NEnumerationValidator")
? true
: false;
cached boolean isBoolean(DataTypeAndTypeParameter dataTypeAndTypeParameter):
let validatorReference = dataTypeAndTypeParameter.getValidatorReferenceDefinition():
let validatorName = validatorReference.validator.name:
(validatorName == "BooleanValidator")
? true
: false;
cached boolean isDate(DataTypeAndTypeParameter dataTypeAndTypeParameter):
let validatorReference = dataTypeAndTypeParameter.getValidatorReferenceDefinition():
let validatorName = validatorReference.validator.name:
(validatorName == "DateValidator")
? true
: false;
String id(emf::EObject x) :
let p = x.metaType.getProperty("name") :
p==null?
null :
p.get(x);
String getPrecision(DataTypeAndTypeParameter type):
type.hasNumberValidator() ?
(let xmaValidator = ((BcdValidator)type.getValidatorReferenceDefinition().createXMAValidator(type.getDefinitionStack())) :
xmaValidator.cntBeforeComma.asInteger() + (xmaValidator.cntAfterComma.length>0 ? xmaValidator.cntAfterComma.asInteger() : 0 ))
: null
;
String getScale(DataTypeAndTypeParameter type):
type.hasNumberValidator() ?
(let xmaValidator = ((BcdValidator)type.getValidatorReferenceDefinition().createXMAValidator(type.getDefinitionStack())) :
xmaValidator.cntAfterComma.asInteger())
: null
;
/**
* JAVA extensions
*/
boolean isDateValidator(ValidatorReference validatorReference):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.isDateValidator(org.openxma.dsl.core.model.ValidatorReference);
boolean isTimestampValidator(ValidatorReference validatorReference):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.isTimestampValidator(org.openxma.dsl.core.model.ValidatorReference);
boolean isNumberValidator(ValidatorReference validatorReference):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.isNumberValidator(org.openxma.dsl.core.model.ValidatorReference);
boolean isStringValidator(ValidatorReference validatorReference):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.isStringValidator(org.openxma.dsl.core.model.ValidatorReference);
boolean isCustomValidator(ValidatorReference validatorReference):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.isCustomValidator(org.openxma.dsl.core.model.ValidatorReference);
boolean isUserDefinedValidator(ValidatorReference validatorReference):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.isUserDefinedValidator(org.openxma.dsl.core.model.ValidatorReference);
boolean hasDateValidator(DataTypeAndTypeParameter dataTypeAndTypeParameter):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.hasDateValidator(org.openxma.dsl.core.model.DataTypeAndTypeParameter);
boolean hasTimeStampValidator(DataTypeAndTypeParameter dataTypeAndTypeParameter):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.hasTimeStampValidator(org.openxma.dsl.core.model.DataTypeAndTypeParameter);
boolean hasDateOrTimeStampValidator(DataTypeAndTypeParameter dataTypeAndTypeParameter):
dataTypeAndTypeParameter.hasDateValidator() || dataTypeAndTypeParameter.hasTimeStampValidator();
boolean hasNumberValidator(DataTypeAndTypeParameter dataTypeAndTypeParameter):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.hasNumberValidator(org.openxma.dsl.core.model.DataTypeAndTypeParameter);
boolean hasStringValidator(DataTypeAndTypeParameter dataTypeAndTypeParameter):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.hasStringValidator(org.openxma.dsl.core.model.DataTypeAndTypeParameter);
boolean hasStringValidator(SimpleType simpleType):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.hasStringValidator(org.openxma.dsl.core.model.SimpleType);
guidesign::Validator createXMAValidator(ValidatorReference validatorReference):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.createXMAValidator(org.openxma.dsl.core.model.ValidatorReference);
guidesign::Validator createXMAValidator(ValidatorReference validatorReference, List[DataTypeAndTypeParameter] definitionStack):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.createXMAValidator(org.openxma.dsl.core.model.ValidatorReference, java.util.List);
guidesign::Validator createStringValidator(List[String] parameters):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.createStringValidator(java.util.List);
List[ReferenceWithParameter] getDefinitionStack(ReferenceWithParameter typeAndParameter):
JAVA org.openxma.dsl.generator.helper.SimpleTypeExtension.getDefinitionStack(org.openxma.dsl.core.model.ReferenceWithParameter);
List[ParameterDefinition] getParameterDefinitions(ReferenceWithParameter referenceWithParameter):
JAVA org.openxma.dsl.generator.helper.SimpleTypeExtension.getParameterDefinitions(org.openxma.dsl.core.model.ReferenceWithParameter);
String getMaxLength(DataTypeAndTypeParameter type):
JAVA org.openxma.dsl.generator.helper.ValidatorExtension.getMaxLength(org.openxma.dsl.core.model.DataTypeAndTypeParameter);
/**
* Get the ValidatorReference definition and determine the definition-stack.
* (Use this method in all cases where the definition-stack in not already
* available.)
*/
cached ValidatorReference getValidatorReferenceDefinition(DataTypeAndTypeParameter dataTypeAndTypeParameter):
JAVA org.openxma.dsl.generator.helper.SimpleTypeExtension.getValidatorReferenceDefinition(org.openxma.dsl.core.model.DataTypeAndTypeParameter);
© 2015 - 2025 Weber Informatics LLC | Privacy Policy