1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package gov.nist.secauto.metaschema.core.model.constraint;
28
29 import gov.nist.secauto.metaschema.core.metapath.DynamicContext;
30 import gov.nist.secauto.metaschema.core.metapath.ISequence;
31 import gov.nist.secauto.metaschema.core.metapath.MetapathException;
32 import gov.nist.secauto.metaschema.core.metapath.item.node.INodeItem;
33
34 import java.util.List;
35
36 import edu.umd.cs.findbugs.annotations.NonNull;
37
38 public interface IConstraintValidationHandler {
39
40 void handleCardinalityMinimumViolation(
41 @NonNull ICardinalityConstraint constraint,
42 @NonNull INodeItem node,
43 @NonNull ISequence<? extends INodeItem> targets);
44
45 void handleCardinalityMaximumViolation(
46 @NonNull ICardinalityConstraint constraint,
47 @NonNull INodeItem node,
48 @NonNull ISequence<? extends INodeItem> targets);
49
50 void handleIndexDuplicateViolation(
51 @NonNull IIndexConstraint constraint,
52 @NonNull INodeItem node);
53
54 void handleIndexDuplicateKeyViolation(
55 @NonNull IIndexConstraint constraint,
56 @NonNull INodeItem node,
57 @NonNull INodeItem oldItem,
58 @NonNull INodeItem target);
59
60 void handleUniqueKeyViolation(
61 @NonNull IUniqueConstraint constraint,
62 @NonNull INodeItem node,
63 @NonNull INodeItem oldItem,
64 @NonNull INodeItem target);
65
66 void handleMatchPatternViolation(
67 @NonNull IMatchesConstraint constraint,
68 @NonNull INodeItem node,
69 @NonNull INodeItem target,
70 @NonNull String value);
71
72 void handleMatchDatatypeViolation(
73 @NonNull IMatchesConstraint constraint,
74 @NonNull INodeItem node,
75 @NonNull INodeItem target,
76 @NonNull String value,
77 @NonNull IllegalArgumentException cause);
78
79 void handleExpectViolation(
80 @NonNull IExpectConstraint constraint,
81 @NonNull INodeItem node,
82 @NonNull INodeItem target,
83 @NonNull DynamicContext metapathContext);
84
85 void handleKeyMatchError(
86 @NonNull IKeyConstraint constraint,
87 @NonNull INodeItem node,
88 @NonNull INodeItem target,
89 @NonNull MetapathException ex);
90
91 void handleIndexMiss(
92 @NonNull IIndexHasKeyConstraint constraint,
93 @NonNull INodeItem node,
94 @NonNull INodeItem target,
95 @NonNull List<String> key);
96
97 void handleAllowedValuesViolation(
98 @NonNull List<IAllowedValuesConstraint> failedConstraints,
99 @NonNull INodeItem target);
100 }