4ee52b343c146359a90430237602bac9548ab59f
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / ConstraintDefinitions.java
1 /**
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.yangtools.yang.data.util;
9
10 import com.google.common.base.MoreObjects;
11 import java.util.Objects;
12 import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
13
14 /**
15  * Utility methods for ConstraintDefinition implementations.
16  */
17 public final class ConstraintDefinitions {
18     private ConstraintDefinitions() {
19         throw new UnsupportedOperationException();
20     }
21
22     public static int hashCode(final ConstraintDefinition def) {
23         final int prime = 31;
24         int result = 1;
25         result = prime * result + Objects.hashCode(def.getWhenCondition());
26         result = prime * result + Objects.hashCode(def.getMustConstraints());
27         result = prime * result + Objects.hashCode(def.getMinElements());
28         result = prime * result + Objects.hashCode(def.getMaxElements());
29         result = prime * result + Objects.hashCode(def.isMandatory());
30         return result;
31     }
32
33     public static boolean equals(final ConstraintDefinition def, final Object obj) {
34         if (def == obj) {
35             return true;
36         }
37         if (!(obj instanceof ConstraintDefinition)) {
38             return false;
39         }
40         final ConstraintDefinition other = (ConstraintDefinition) obj;
41         if (def.isMandatory() != other.isMandatory()) {
42             return false;
43         }
44         if (!Objects.equals(def.getWhenCondition(), other.getWhenCondition())) {
45             return false;
46         }
47         if (!Objects.equals(def.getMustConstraints(), other.getMustConstraints())) {
48             return false;
49         }
50         if (!Objects.equals(def.getMinElements(), other.getMinElements())) {
51             return false;
52         }
53         if (!Objects.equals(def.getMaxElements(), other.getMaxElements())) {
54             return false;
55         }
56         return true;
57     }
58
59     public static String toString(final ConstraintDefinition def) {
60         return MoreObjects.toStringHelper(def).omitNullValues()
61                 .add("whenCondition", def.getWhenCondition())
62                 .add("mustConstraints", def.getMustConstraints())
63                 .add("mandatory", def.isMandatory())
64                 .add("minElements", def.getMinElements())
65                 .add("maxElements", def.getMaxElements()).toString();
66     }
67 }