2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective;
10 import com.google.common.collect.ImmutableSet;
12 import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
13 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
14 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
17 * Utility holder for constraint definitions which do not really constrain anything.
19 abstract class EmptyConstraintDefinition implements ConstraintDefinition {
20 private static final EmptyConstraintDefinition MANDATORY = new EmptyConstraintDefinition() {
22 public boolean isMandatory() {
26 private static final EmptyConstraintDefinition OPTIONAL = new EmptyConstraintDefinition() {
28 public boolean isMandatory() {
33 private EmptyConstraintDefinition() {
37 static EmptyConstraintDefinition create(final boolean mandatory) {
38 return mandatory ? MANDATORY : OPTIONAL;
42 public final RevisionAwareXPath getWhenCondition() {
47 public final Set<MustDefinition> getMustConstraints() {
48 return ImmutableSet.of();
52 public final Integer getMinElements() {
57 public final Integer getMaxElements() {
58 return Integer.MAX_VALUE;
62 public final int hashCode() {
63 return ConstraintDefinitions.hashCode(this);
67 public final boolean equals(final Object obj) {
68 return ConstraintDefinitions.equals(this, obj);
72 public final String toString() {
73 return ConstraintDefinitions.toString(this);