Implemented ordering of yang module data nodes. Added Comparators utility class.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / yang / parser / builder / impl / ConstraintsBuilder.java
index a1936dea55a5183eb2d155e6e803afc0175452e0..1351f56b4c97f8f5dd68cb9538032ebf2da5e246 100644 (file)
@@ -12,15 +12,16 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.opendaylight.controller.yang.model.api.ConstraintDefinition;
-import org.opendaylight.controller.yang.model.api.DataSchemaNode;
 import org.opendaylight.controller.yang.model.api.MustDefinition;
 import org.opendaylight.controller.yang.model.api.RevisionAwareXPath;
 import org.opendaylight.controller.yang.model.util.RevisionAwareXPathImpl;
 import org.opendaylight.controller.yang.parser.builder.api.Builder;
+import org.opendaylight.controller.yang.parser.util.YangParseException;
 
-public class ConstraintsBuilder implements Builder {
+public final class ConstraintsBuilder implements Builder {
     private final ConstraintDefinitionImpl instance;
     private final int line;
+    private Builder parent;
     private final Set<MustDefinition> mustDefinitions;
     private String whenCondition;
     private boolean mandatory;
@@ -54,6 +55,21 @@ public class ConstraintsBuilder implements Builder {
         return line;
     }
 
+    @Override
+    public Builder getParent() {
+        return parent;
+    }
+
+    @Override
+    public void setParent(final Builder parent) {
+        this.parent = parent;
+    }
+
+    @Override
+    public void addUnknownSchemaNode(UnknownSchemaNodeBuilder unknownNode) {
+        throw new YangParseException(line, "Can not add unknown node to constraints.");
+    }
+
     public Integer getMinElements() {
         return min;
     }
@@ -94,20 +110,14 @@ public class ConstraintsBuilder implements Builder {
         this.mandatory = mandatory;
     }
 
-    private static class ConstraintDefinitionImpl implements
-            ConstraintDefinition {
-        private DataSchemaNode parent;
+
+    private final class ConstraintDefinitionImpl implements ConstraintDefinition {
         private RevisionAwareXPath whenCondition;
         private Set<MustDefinition> mustConstraints;
         private boolean mandatory;
         private Integer minElements;
         private Integer maxElements;
 
-        @Override
-        public DataSchemaNode getParent() {
-            return parent;
-        }
-
         @Override
         public RevisionAwareXPath getWhenCondition() {
             return whenCondition;
@@ -163,18 +173,10 @@ public class ConstraintsBuilder implements Builder {
         public int hashCode() {
             final int prime = 31;
             int result = 1;
-            result = prime * result
-                    + ((parent == null) ? 0 : parent.hashCode());
-            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 + ((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 + (mandatory ? 1231 : 1237);
             return result;
         }
@@ -191,13 +193,6 @@ public class ConstraintsBuilder implements Builder {
                 return false;
             }
             ConstraintDefinitionImpl other = (ConstraintDefinitionImpl) obj;
-            if (parent == null) {
-                if (other.parent != null) {
-                    return false;
-                }
-            } else if (!parent.equals(other.parent)) {
-                return false;
-            }
             if (whenCondition == null) {
                 if (other.whenCondition != null) {
                     return false;
@@ -234,11 +229,9 @@ public class ConstraintsBuilder implements Builder {
 
         @Override
         public String toString() {
-            StringBuilder sb = new StringBuilder(
-                    ConstraintDefinitionImpl.class.getSimpleName());
+            StringBuilder sb = new StringBuilder(ConstraintDefinitionImpl.class.getSimpleName());
             sb.append("[");
-            sb.append("parent=" + parent);
-            sb.append(", whenCondition=" + whenCondition);
+            sb.append("whenCondition=" + whenCondition);
             sb.append(", mustConstraints=" + mustConstraints);
             sb.append(", mandatory=" + mandatory);
             sb.append(", minElements=" + minElements);
@@ -246,7 +239,6 @@ public class ConstraintsBuilder implements Builder {
             sb.append("]");
             return sb.toString();
         }
-
     }
 
 }