1
2
3
4
5
6 package gov.nist.secauto.metaschema.core.model.constraint;
7
8 import java.util.LinkedList;
9 import java.util.List;
10
11 import edu.umd.cs.findbugs.annotations.NonNull;
12
13
14
15
16 @SuppressWarnings("PMD.CouplingBetweenObjects")
17 public class AssemblyConstraintSet
18 extends ValueConstraintSet
19 implements IModelConstrained {
20
21 @NonNull
22 private final List<IIndexConstraint> indexConstraints = new LinkedList<>();
23 @NonNull
24 private final List<IUniqueConstraint> uniqueConstraints = new LinkedList<>();
25 @NonNull
26 private final List<ICardinalityConstraint> cardinalityConstraints = new LinkedList<>();
27
28 @Override
29 public List<IIndexConstraint> getIndexConstraints() {
30 synchronized (this) {
31 return indexConstraints;
32 }
33 }
34
35 @Override
36 public List<IUniqueConstraint> getUniqueConstraints() {
37 synchronized (this) {
38 return uniqueConstraints;
39 }
40 }
41
42 @Override
43 public List<ICardinalityConstraint> getHasCardinalityConstraints() {
44 synchronized (this) {
45 return cardinalityConstraints;
46 }
47 }
48
49 @Override
50 public final void addConstraint(@NonNull IIndexConstraint constraint) {
51 synchronized (this) {
52 getConstraints().add(constraint);
53 indexConstraints.add(constraint);
54 }
55 }
56
57 @Override
58 public final void addConstraint(@NonNull IUniqueConstraint constraint) {
59 synchronized (this) {
60 getConstraints().add(constraint);
61 uniqueConstraints.add(constraint);
62 }
63 }
64
65 @Override
66 public final void addConstraint(@NonNull ICardinalityConstraint constraint) {
67 synchronized (this) {
68 getConstraints().add(constraint);
69 cardinalityConstraints.add(constraint);
70 }
71 }
72
73 }