@@ -24,6 +24,15 @@ public class AttributeConstraints {
2424 */
2525 private boolean required ;
2626
27+ /**
28+ * Indicates if attribute has to be present
29+ *
30+ *
31+ * @see fr.ign.validator.validation.data.Header
32+ * @see fr.ign.validator.error.CoreErrorCodes#TABLE_MISSING_ATTRIBUTE
33+ */
34+ private boolean presenceRequired ;
35+
2736 /**
2837 * Indicates if the value is unique in the table
2938 *
@@ -79,17 +88,35 @@ public class AttributeConstraints {
7988 */
8089 private String reference ;
8190
91+ // checks wheter presenceRequired has been modified
92+ private boolean presenceRequiredModified ;
93+
8294 public AttributeConstraints () {
8395 this .required = true ;
96+ this .presenceRequired = true ;
97+ this .presenceRequiredModified = false ;
8498 this .unique = false ;
8599 }
86100
101+ public boolean isPresenceRequired () {
102+ return presenceRequired ;
103+ }
104+
105+ // Must be called after setRequired
106+ public void setPresenceRequired (boolean presenceRequired ) {
107+ this .presenceRequired = presenceRequired ;
108+ this .presenceRequiredModified = true ;
109+ }
110+
87111 public boolean isRequired () {
88112 return required ;
89113 }
90114
91115 public void setRequired (boolean required ) {
92116 this .required = required ;
117+ if (!this .presenceRequiredModified ) {
118+ this .presenceRequired = required ;
119+ }
93120 }
94121
95122 public boolean isUnique () {
@@ -150,4 +177,8 @@ public void setReference(String reference) {
150177 this .reference = reference ;
151178 }
152179
180+ public boolean isPresenceRequiredModified () {
181+ return this .presenceRequiredModified ;
182+ }
183+
153184}
0 commit comments