Class DefaultConstraintValidator
- java.lang.Object
-
- gov.nist.secauto.metaschema.core.model.constraint.DefaultConstraintValidator
-
- All Implemented Interfaces:
IConstraintValidator
public class DefaultConstraintValidator extends Object implements IConstraintValidator
Used to perform constraint validation over one or more node items.This class is not thread safe.
-
-
Constructor Summary
Constructors Constructor Description DefaultConstraintValidator(DynamicContext metapathContext, IConstraintValidationHandler handler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
finalizeValidation()
Complete any validations that require full analysis of the content model.IConstraintValidationHandler
getConstraintValidationHandler()
protected DynamicContext
getMetapathContext()
protected void
handleAllowedValues(INodeItem targetItem)
protected void
updateValueStatus(INodeItem targetItem, IAllowedValuesConstraint allowedValues)
Add a new allowed value to the value status tracker.void
validate(INodeItem item)
Validate the provided item against any associated constraints.protected void
validateAllowedValues(IAllowedValuesConstraint constraint, ISequence<? extends IDefinitionNodeItem<?,?>> targets)
protected void
validateAllowedValues(List<? extends IAllowedValuesConstraint> constraints, IDefinitionNodeItem<?,?> item)
protected void
validateAssembly(IAssemblyNodeItem item)
Validate the provided assembly item against any associated constraints.protected void
validateExpect(IExpectConstraint constraint, INodeItem node, ISequence<? extends INodeItem> targets)
protected void
validateExpect(List<? extends IExpectConstraint> constraints, IDefinitionNodeItem<?,?> item)
protected void
validateField(IFieldNodeItem item)
Validate the provided field item against any associated constraints.protected void
validateFlag(IFlagNodeItem item)
Validate the provided flag item against any associated constraints.protected void
validateHasCardinality(ICardinalityConstraint constraint, IAssemblyNodeItem node, ISequence<? extends INodeItem> targets)
protected void
validateHasCardinality(List<? extends ICardinalityConstraint> constraints, IAssemblyNodeItem item)
protected void
validateHasCardinality(List<? extends ICardinalityConstraint> constraints, List<? extends IAssemblyNodeItem> items)
protected void
validateIndex(IIndexConstraint constraint, IAssemblyNodeItem node, ISequence<? extends INodeItem> targets)
protected void
validateIndex(List<? extends IIndexConstraint> constraints, IAssemblyNodeItem item)
protected void
validateIndex(List<? extends IIndexConstraint> constraints, List<? extends IAssemblyNodeItem> items)
protected void
validateIndexHasKey(IIndexHasKeyConstraint constraint, IDefinitionNodeItem<?,?> node, ISequence<? extends INodeItem> targets)
protected void
validateIndexHasKey(List<? extends IIndexHasKeyConstraint> constraints, IDefinitionNodeItem<?,?> node)
protected void
validateMatches(IMatchesConstraint constraint, INodeItem node, ISequence<? extends INodeItem> targets)
protected void
validateMatches(List<? extends IMatchesConstraint> constraints, IDefinitionNodeItem<?,?> item)
protected void
validateUnique(IUniqueConstraint constraint, IAssemblyNodeItem node, ISequence<? extends INodeItem> targets)
protected void
validateUnique(List<? extends IUniqueConstraint> constraints, IAssemblyNodeItem item)
protected void
validateUnique(List<? extends IUniqueConstraint> constraints, List<? extends IAssemblyNodeItem> items)
-
-
-
Constructor Detail
-
DefaultConstraintValidator
public DefaultConstraintValidator(@NonNull DynamicContext metapathContext, @NonNull IConstraintValidationHandler handler)
-
-
Method Detail
-
getConstraintValidationHandler
@NonNull public IConstraintValidationHandler getConstraintValidationHandler()
-
getMetapathContext
@NonNull protected DynamicContext getMetapathContext()
-
validate
public void validate(@NonNull INodeItem item)
Description copied from interface:IConstraintValidator
Validate the provided item against any associated constraints.- Specified by:
validate
in interfaceIConstraintValidator
- Parameters:
item
- the item to validate
-
validateFlag
protected void validateFlag(@NonNull IFlagNodeItem item)
Validate the provided flag item against any associated constraints.- Parameters:
item
- the flag item to validate- Throws:
MetapathException
- if an error occurred while evaluating a Metapath used in a constraint
-
validateField
protected void validateField(@NonNull IFieldNodeItem item)
Validate the provided field item against any associated constraints.- Parameters:
item
- the field item to validate- Throws:
MetapathException
- if an error occurred while evaluating a Metapath used in a constraint
-
validateAssembly
protected void validateAssembly(@NonNull IAssemblyNodeItem item)
Validate the provided assembly item against any associated constraints.- Parameters:
item
- the assembly item to validate- Throws:
MetapathException
- if an error occurred while evaluating a Metapath used in a constraint
-
validateHasCardinality
protected void validateHasCardinality(@NonNull List<? extends ICardinalityConstraint> constraints, @NonNull List<? extends IAssemblyNodeItem> items)
-
validateHasCardinality
protected void validateHasCardinality(@NonNull List<? extends ICardinalityConstraint> constraints, @NonNull IAssemblyNodeItem item)
-
validateHasCardinality
protected void validateHasCardinality(@NonNull ICardinalityConstraint constraint, @NonNull IAssemblyNodeItem node, ISequence<? extends INodeItem> targets)
-
validateIndex
protected void validateIndex(@NonNull List<? extends IIndexConstraint> constraints, @NonNull List<? extends IAssemblyNodeItem> items)
-
validateIndex
protected void validateIndex(@NonNull List<? extends IIndexConstraint> constraints, @NonNull IAssemblyNodeItem item)
-
validateIndex
protected void validateIndex(@NonNull IIndexConstraint constraint, @NonNull IAssemblyNodeItem node, @NonNull ISequence<? extends INodeItem> targets)
-
validateUnique
protected void validateUnique(@NonNull List<? extends IUniqueConstraint> constraints, @NonNull List<? extends IAssemblyNodeItem> items)
-
validateUnique
protected void validateUnique(@NonNull List<? extends IUniqueConstraint> constraints, @NonNull IAssemblyNodeItem item)
-
validateUnique
protected void validateUnique(@NonNull IUniqueConstraint constraint, @NonNull IAssemblyNodeItem node, @NonNull ISequence<? extends INodeItem> targets)
-
validateMatches
protected void validateMatches(@NonNull List<? extends IMatchesConstraint> constraints, @NonNull IDefinitionNodeItem<?,?> item)
-
validateMatches
protected void validateMatches(@NonNull IMatchesConstraint constraint, @NonNull INodeItem node, ISequence<? extends INodeItem> targets)
-
validateIndexHasKey
protected void validateIndexHasKey(@NonNull List<? extends IIndexHasKeyConstraint> constraints, @NonNull IDefinitionNodeItem<?,?> node)
-
validateIndexHasKey
protected void validateIndexHasKey(@NonNull IIndexHasKeyConstraint constraint, @NonNull IDefinitionNodeItem<?,?> node, @NonNull ISequence<? extends INodeItem> targets)
-
validateExpect
protected void validateExpect(@NonNull List<? extends IExpectConstraint> constraints, @NonNull IDefinitionNodeItem<?,?> item)
-
validateExpect
protected void validateExpect(@NonNull IExpectConstraint constraint, @NonNull INodeItem node, @NonNull ISequence<? extends INodeItem> targets)
-
validateAllowedValues
protected void validateAllowedValues(@NonNull List<? extends IAllowedValuesConstraint> constraints, @NonNull IDefinitionNodeItem<?,?> item)
-
validateAllowedValues
protected void validateAllowedValues(@NonNull IAllowedValuesConstraint constraint, ISequence<? extends IDefinitionNodeItem<?,?>> targets)
-
updateValueStatus
protected void updateValueStatus(@NonNull INodeItem targetItem, @NonNull IAllowedValuesConstraint allowedValues)
Add a new allowed value to the value status tracker.- Parameters:
targetItem
- the item whose value is targeted by the constraintallowedValues
- the set of allowed values
-
handleAllowedValues
protected void handleAllowedValues(@NonNull INodeItem targetItem)
-
finalizeValidation
public void finalizeValidation()
Description copied from interface:IConstraintValidator
Complete any validations that require full analysis of the content model.- Specified by:
finalizeValidation
in interfaceIConstraintValidator
-
-