/** * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.yangtools.yang.data.util; import com.google.common.base.MoreObjects; import java.util.Objects; import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition; /** * Utility methods for ConstraintDefinition implementations. */ public final class ConstraintDefinitions { private ConstraintDefinitions() { throw new UnsupportedOperationException(); } public static int hashCode(final ConstraintDefinition def) { final int prime = 31; int result = 1; result = prime * result + Objects.hashCode(def.getWhenCondition()); result = prime * result + Objects.hashCode(def.getMustConstraints()); result = prime * result + Objects.hashCode(def.getMinElements()); result = prime * result + Objects.hashCode(def.getMaxElements()); result = prime * result + Boolean.hashCode(def.isMandatory()); return result; } public static boolean equals(final ConstraintDefinition def, final Object obj) { if (def == obj) { return true; } if (!(obj instanceof ConstraintDefinition)) { return false; } final ConstraintDefinition other = (ConstraintDefinition) obj; if (def.isMandatory() != other.isMandatory()) { return false; } if (!Objects.equals(def.getWhenCondition(), other.getWhenCondition())) { return false; } if (!Objects.equals(def.getMustConstraints(), other.getMustConstraints())) { return false; } if (!Objects.equals(def.getMinElements(), other.getMinElements())) { return false; } if (!Objects.equals(def.getMaxElements(), other.getMaxElements())) { return false; } return true; } public static String toString(final ConstraintDefinition def) { return MoreObjects.toStringHelper(def).omitNullValues() .add("whenCondition", def.getWhenCondition()) .add("mustConstraints", def.getMustConstraints()) .add("mandatory", def.isMandatory()) .add("minElements", def.getMinElements()) .add("maxElements", def.getMaxElements()).toString(); } }