BUG-865: deprecate pre-Beryllium parser elements
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / ConstraintsBuilderImpl.java
index 11fcb347d43a3398703bb3252bd18b4845e9dc23..0ae87ee0103da2d24f34caf72bac655c47b498bc 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.parser.builder.impl;
 import com.google.common.collect.ImmutableSet;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.Objects;
 import java.util.Set;
 import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
@@ -17,6 +18,10 @@ import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
 import org.opendaylight.yangtools.yang.model.util.RevisionAwareXPathImpl;
 import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
 
+/**
+ * @deprecated Pre-Beryllium implementation, scheduled for removal.
+ */
+@Deprecated
 public final class ConstraintsBuilderImpl implements ConstraintsBuilder {
     private static final ConstraintDefinitionImpl EMPTY_CONSTRAINT = new ConstraintDefinitionImpl();
     private static final ConstraintDefinitionImpl EMPTY_MANDATORY_CONSTRAINT;
@@ -68,7 +73,7 @@ public final class ConstraintsBuilderImpl implements ConstraintsBuilder {
      * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#build()
      */
     @Override
-    public ConstraintDefinition toInstance() {
+    public ConstraintDefinition build() {
         if (instance != null) {
             return instance;
         }
@@ -239,6 +244,9 @@ public final class ConstraintsBuilderImpl implements ConstraintsBuilder {
 
         private void setMinElements(final Integer minElements) {
             this.minElements = minElements;
+            if (minElements != null && minElements > 0) {
+                mandatory = true;
+            }
         }
 
         @Override
@@ -254,10 +262,10 @@ public final class ConstraintsBuilderImpl implements ConstraintsBuilder {
         public int hashCode() {
             final int prime = 31;
             int result = 1;
-            result = prime * result + ((whenCondition == null) ? 0 : whenCondition.hashCode());
-            result = prime * result + ((mustConstraints == null) ? 0 : mustConstraints.hashCode());
-            result = prime * result + ((minElements == null) ? 0 : minElements.hashCode());
-            result = prime * result + ((maxElements == null) ? 0 : maxElements.hashCode());
+            result = prime * result + Objects.hashCode(whenCondition);
+            result = prime * result + Objects.hashCode(mustConstraints);
+            result = prime * result + Objects.hashCode(minElements);
+            result = prime * result + Objects.hashCode(maxElements);
             result = prime * result + mandatory.hashCode();
             return result;
         }
@@ -322,4 +330,13 @@ public final class ConstraintsBuilderImpl implements ConstraintsBuilder {
         }
     }
 
+    /*
+     * @deprecated Use #build() instead.
+     */
+    @Override
+    @Deprecated
+    public ConstraintDefinition toInstance() {
+        return build();
+    }
+
 }