Package org.kuali.rice.krad.service.impl
Class DictionaryValidationServiceImpl
java.lang.Object
org.kuali.rice.krad.service.impl.DictionaryValidationServiceImpl
- All Implemented Interfaces:
DictionaryValidationService
Validates Documents, Business Objects, and Attributes against the data dictionary. Including min, max lengths, and
validating expressions. This is the default, Kuali delivered implementation.
KULRICE - 3355 Modified to prevent infinite looping (to maxDepth) scenario when a parent references a child which
references a parent
- Author:
- Kuali Rice Team (rice.collab@kuali.org)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected DataDictionaryServiceprotected DocumentDictionaryServicestatic final StringConstant defines a validation method for an attribute value. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongets the list ofCollectionConstraintProcessorgets the list ofConstraintProvidersorg.kuali.rice.krad.data.DataObjectServicegets the list of elementConstraintProcessorDeprecated.booleanisBusinessObjectValid(Object businessObject) booleanisBusinessObjectValid(Object businessObject, String prefix) creates a new IdentitySet.protected voidprocessCollectionConstraints(DictionaryValidationResult result, Collection<?> collection, Constrainable definition, AttributeValueReader attributeValueReader, boolean doOptionalProcessing, String validationState, StateMapping stateMapping) process constraints for the provided collection using the collection constraint processorsprotected voidprocessElementConstraints(DictionaryValidationResult result, Object value, Constrainable definition, AttributeValueReader attributeValueReader, boolean doOptionalProcessing, String validationState, StateMapping stateMapping) process constraints for the provided value using the element constraint processorsvoidsetCollectionConstraintProcessors(List<CollectionConstraintProcessor> collectionConstraintProcessors) sets the list ofCollectionConstraintProcessorvoidsetConstraintProviders(List<ConstraintProvider> constraintProviders) sets a list ofConstraintProvidervoidsetDataDictionaryService(DataDictionaryService dataDictionaryService) voidsetDataObjectService(org.kuali.rice.krad.data.DataObjectService dataObjectService) voidsetDocumentDictionaryService(DocumentDictionaryService documentDictionaryService) voidsetElementConstraintProcessors(List<ConstraintProcessor> elementConstraintProcessors) sets the list ofConstraintProcessorvoidsetLegacyDataAdapter(LegacyDataAdapter legacyDataAdapter) validate(Object object, String entryName, DataDictionaryEntry entry, boolean doOptionalProcessing) validate(AttributeValueReader valueReader, boolean doOptionalProcessing, String validationState, StateMapping stateMapping) Validates using the defined AttributeValueReader (which allows access the object being validated) against the validationState and stateMapping (if specified).validateAgainstNextState(Object object) validateAgainstState(Object object, String validationState) protected voidvalidateAttribute(DictionaryValidationResult result, AttributeValueReader attributeValueReader, boolean checkIfRequired, String validationState, StateMapping stateMapping) validates an attributeprotected voidvalidateAttribute(DictionaryValidationResult result, Constrainable definition, AttributeValueReader attributeValueReader, boolean checkIfRequired, String validationState, StateMapping stateMapping) Validates the attribute specified by definitionvoidvalidateBusinessObject(Object businessObject) voidvalidateBusinessObject(Object businessObject, boolean validateRequired) protected voidvalidateBusinessObjectsFromDescriptors(Object object, PropertyDescriptor[] propertyDescriptors, int depth) iterates through the property descriptors looking for business objects or lists of business objects. calls validate method for each bo foundvoidvalidateBusinessObjectsRecursively(Object businessObject, int depth) booleanvalidateDefaultExistenceChecks(Object dataObject) booleanvalidateDefaultExistenceChecksForNewCollectionItem(Object dataObject, Object newCollectionItem, String collectionName) booleanvalidateDefaultExistenceChecksForNewCollectionItem(TransactionalDocument document, Object newCollectionItem, String collectionName) booleanvoidvalidateDocument(Document document) voidvalidateDocumentAndUpdatableReferencesRecursively(Document document, int maxDepth, boolean validateRequired) voidvalidateDocumentAndUpdatableReferencesRecursively(Document document, int maxDepth, boolean validateRequired, boolean chompLastLetterSFromCollectionName) voidvalidateDocumentAttribute(Document document, String attributeName, String errorPrefix) protected voidvalidateObject(DictionaryValidationResult result, AttributeValueReader attributeValueReader, boolean doOptionalProcessing, boolean processAttributes, String validationState, StateMapping stateMapping) validates an object and its attributes recursivelyvoidvalidatePrimitiveFromDescriptor(String entryName, Object object, PropertyDescriptor propertyDescriptor, String errorPrefix, boolean validateRequired) Deprecated.booleanvalidateReferenceExists(Object dataObject, String referenceName) booleanvalidateReferenceExists(Object dataObject, ReferenceDefinition reference) booleanvalidateReferenceExistsAndIsActive(Object dataObject, String referenceName, String attributeToHighlightOnFail, String displayFieldName) booleanvalidateReferenceExistsAndIsActive(Object dataObject, ReferenceDefinition reference) booleanvalidateReferenceIsActive(Object dataObject, String referenceName) booleanvalidateReferenceIsActive(Object dataObject, ReferenceDefinition reference) protected voidvalidateUpdatabableReferencesRecursively(Object businessObject, int maxDepth, boolean validateRequired, boolean chompLastLetterSFromCollectionName, Set<Object> processedBOs)
-
Field Details
-
VALIDATE_METHOD
Constant defines a validation method for an attribute value.Value is "validate"
- See Also:
-
dataDictionaryService
-
documentDictionaryService
-
-
Constructor Details
-
DictionaryValidationServiceImpl
public DictionaryValidationServiceImpl()
-
-
Method Details
-
newIdentitySet
creates a new IdentitySet.- Returns:
- a new Set
-
validate
- Specified by:
validatein interfaceDictionaryValidationService
-
validate
public DictionaryValidationResult validate(Object object, String entryName, String attributeName, boolean doOptionalProcessing) - Specified by:
validatein interfaceDictionaryValidationService
-
validateAgainstNextState
- Specified by:
validateAgainstNextStatein interfaceDictionaryValidationService
-
validateAgainstState
- Specified by:
validateAgainstStatein interfaceDictionaryValidationService
-
validate
public DictionaryValidationResult validate(Object object, String entryName, DataDictionaryEntry entry, boolean doOptionalProcessing) - Specified by:
validatein interfaceDictionaryValidationService
-
validateDocument
- Specified by:
validateDocumentin interfaceDictionaryValidationService
-
validateDocumentAttribute
- Specified by:
validateDocumentAttributein interfaceDictionaryValidationService
-
validateDocumentAndUpdatableReferencesRecursively
public void validateDocumentAndUpdatableReferencesRecursively(Document document, int maxDepth, boolean validateRequired) - Specified by:
validateDocumentAndUpdatableReferencesRecursivelyin interfaceDictionaryValidationService
-
validateDocumentAndUpdatableReferencesRecursively
public void validateDocumentAndUpdatableReferencesRecursively(Document document, int maxDepth, boolean validateRequired, boolean chompLastLetterSFromCollectionName) - Specified by:
validateDocumentAndUpdatableReferencesRecursivelyin interfaceDictionaryValidationService
-
validateUpdatabableReferencesRecursively
-
isBusinessObjectValid
- Specified by:
isBusinessObjectValidin interfaceDictionaryValidationService
-
isBusinessObjectValid
- Specified by:
isBusinessObjectValidin interfaceDictionaryValidationService
-
validateBusinessObjectsRecursively
-
validateBusinessObject
- Specified by:
validateBusinessObjectin interfaceDictionaryValidationService
-
validateBusinessObject
- Specified by:
validateBusinessObjectin interfaceDictionaryValidationService
-
validateBusinessObjectsFromDescriptors
protected void validateBusinessObjectsFromDescriptors(Object object, PropertyDescriptor[] propertyDescriptors, int depth) iterates through the property descriptors looking for business objects or lists of business objects. calls validate method for each bo found -
validatePrimitiveFromDescriptor
@Deprecated public void validatePrimitiveFromDescriptor(String entryName, Object object, PropertyDescriptor propertyDescriptor, String errorPrefix, boolean validateRequired) Deprecated.calls validate format and required check for the given propertyDescriptor- Specified by:
validatePrimitiveFromDescriptorin interfaceDictionaryValidationService
-
validateReferenceExists
- Specified by:
validateReferenceExistsin interfaceDictionaryValidationService
-
validateReferenceExists
- Specified by:
validateReferenceExistsin interfaceDictionaryValidationService
-
validateReferenceIsActive
- Specified by:
validateReferenceIsActivein interfaceDictionaryValidationService
-
validateReferenceIsActive
- Specified by:
validateReferenceIsActivein interfaceDictionaryValidationService
-
validateReferenceExistsAndIsActive
- Specified by:
validateReferenceExistsAndIsActivein interfaceDictionaryValidationService
-
validateReferenceExistsAndIsActive
public boolean validateReferenceExistsAndIsActive(Object dataObject, String referenceName, String attributeToHighlightOnFail, String displayFieldName) - Specified by:
validateReferenceExistsAndIsActivein interfaceDictionaryValidationService
-
validateDefaultExistenceChecks
- Specified by:
validateDefaultExistenceChecksin interfaceDictionaryValidationService
-
validateDefaultExistenceChecksForNewCollectionItem
public boolean validateDefaultExistenceChecksForNewCollectionItem(Object dataObject, Object newCollectionItem, String collectionName) - Specified by:
validateDefaultExistenceChecksForNewCollectionItemin interfaceDictionaryValidationService
-
validateDefaultExistenceChecksForTransDoc
- Specified by:
validateDefaultExistenceChecksForTransDocin interfaceDictionaryValidationService
-
validateDefaultExistenceChecksForNewCollectionItem
public boolean validateDefaultExistenceChecksForNewCollectionItem(TransactionalDocument document, Object newCollectionItem, String collectionName) - Specified by:
validateDefaultExistenceChecksForNewCollectionItemin interfaceDictionaryValidationService
-
validate
public DictionaryValidationResult validate(AttributeValueReader valueReader, boolean doOptionalProcessing, String validationState, StateMapping stateMapping) Validates using the defined AttributeValueReader (which allows access the object being validated) against the validationState and stateMapping (if specified).If state information is null, validates the constraints as stateless (ie all constraints apply regardless of their states attribute).
- Specified by:
validatein interfaceDictionaryValidationService- Parameters:
valueReader- - an object to validatedoOptionalProcessing- true if the validation should do optional validation (e.g. to check if empty values are required or not), false otherwise
-
processElementConstraints
protected void processElementConstraints(DictionaryValidationResult result, Object value, Constrainable definition, AttributeValueReader attributeValueReader, boolean doOptionalProcessing, String validationState, StateMapping stateMapping) process constraints for the provided value using the element constraint processors- Parameters:
result- - used to store the validation resultsvalue- - the object on which constraints are to be processed - the value of a complex attributedefinition- - a Data Dictionary definition e.g.ComplexAttributeDefinitionattributeValueReader- - a class that encapsulate access to both dictionary metadata and object field valuesdoOptionalProcessing- - true if the validation should do optional validation, false otherwise
-
processCollectionConstraints
protected void processCollectionConstraints(DictionaryValidationResult result, Collection<?> collection, Constrainable definition, AttributeValueReader attributeValueReader, boolean doOptionalProcessing, String validationState, StateMapping stateMapping) process constraints for the provided collection using the collection constraint processors- Parameters:
result- - used to store the validation resultscollection- - the object on which constraints are to be processed - a collectiondefinition- - a Data Dictionary definition e.g.CollectionDefinitionattributeValueReader- - a class that encapsulate access to both dictionary metadata and object field valuesdoOptionalProcessing- - true if the validation should do optional validation, false otherwise
-
validateAttribute
protected void validateAttribute(DictionaryValidationResult result, AttributeValueReader attributeValueReader, boolean checkIfRequired, String validationState, StateMapping stateMapping) throws AttributeValidationException validates an attribute- Parameters:
result- - used to store the validation resultsattributeValueReader- - a class that encapsulate access to both dictionary metadata and object field valuescheckIfRequired- - check if empty values are required or not- Throws:
AttributeValidationException
-
validateAttribute
protected void validateAttribute(DictionaryValidationResult result, Constrainable definition, AttributeValueReader attributeValueReader, boolean checkIfRequired, String validationState, StateMapping stateMapping) throws AttributeValidationException Validates the attribute specified by definition- Parameters:
definition- - the constrainable attribute definition of a specific attribute name- Throws:
AttributeValidationException
-
validateObject
protected void validateObject(DictionaryValidationResult result, AttributeValueReader attributeValueReader, boolean doOptionalProcessing, boolean processAttributes, String validationState, StateMapping stateMapping) throws AttributeValidationException validates an object and its attributes recursively- Parameters:
result- - used to store the validation resultsattributeValueReader- - a class that encapsulate access to both dictionary metadata and object field valuesdoOptionalProcessing- - true if the validation should do optional validation, false otherwiseprocessAttributes- - if true process all attribute definitions, skip if false- Throws:
AttributeValidationException
-
getCollectionConstraintProcessors
gets the list ofCollectionConstraintProcessorCollection constraint processors are classes that determine if a feature of a collection of objects satisfies some constraint
- Returns:
- the collectionConstraintProcessors
-
setCollectionConstraintProcessors
public void setCollectionConstraintProcessors(List<CollectionConstraintProcessor> collectionConstraintProcessors) sets the list ofCollectionConstraintProcessor- Parameters:
collectionConstraintProcessors- the collectionConstraintProcessors to set
-
getConstraintProviders
gets the list ofConstraintProvidersConstraint providers are classes that map specific constraint types to a constraint resolver, which takes a constrainable definition
- Returns:
- the constraintProviders
-
setConstraintProviders
sets a list ofConstraintProvider- Parameters:
constraintProviders- the constraintProviders to set
-
getElementConstraintProcessors
gets the list of elementConstraintProcessorElement constraint processors are classes that determine if a passed value is valid for a specific constraint at the individual object or object attribute level
- Returns:
- the elementConstraintProcessors
-
setElementConstraintProcessors
sets the list ofConstraintProcessor- Parameters:
elementConstraintProcessors- the elementConstraintProcessors to set
-
getDocumentDictionaryService
-
getDataDictionaryService
-
setDataDictionaryService
-
getDataObjectService
public org.kuali.rice.krad.data.DataObjectService getDataObjectService() -
setDataObjectService
public void setDataObjectService(org.kuali.rice.krad.data.DataObjectService dataObjectService) -
setDocumentDictionaryService
-
getLegacyDataAdapter
Deprecated. -
setLegacyDataAdapter
-