2 * Copyright (c) 2013 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.model.api;
11 import javax.annotation.Nullable;
14 * Contains method which returns various data constraints for some YANG element
15 * (e.g. min or max number of elements). Not all constraints are allowed for all
16 * YANG element therefore if the constraint doesn't have sense for some element
17 * then the method returns <code>null</code> value.
19 public interface ConstraintDefinition {
22 * Specifies the condition when the data node which contains
23 * <code>when</code> YANG substatement has to be present. If XPath
24 * expression is evaluated as true then the data node has to be present.
26 * @return XPath expression.
28 RevisionAwareXPath getWhenCondition();
31 * Specifies the rules which the node which contains <code>must</code> YANG
32 * substatement has to match.
34 * @return set of <code>MustDefinition</code> (XPath) instances which
35 * represents the concrete data constraints
37 Set<MustDefinition> getMustConstraints();
40 * Expreses if the presence of the data element for which this constraint is
41 * specified is|isn't required.
44 * Contains the value of the <b>mandatory</b> YANG substatement.
45 * It is used with YANG statements leaf, choice, anyxml, deviate.
47 * @return boolean value:
49 * <li>true - if <code>mandatory</code> YANG keyword argument =
51 * <li>false - if <code>mandatory</code> YANG keyword argument =
55 boolean isMandatory();
58 * Returns the minimum required number of data elements for node where this
59 * constraint is specified.
62 * The returning value equals to value of the argument of the
63 * <b>min-elements</b> YANG substatement.
64 * It is used with YANG statements leaf-list, list, deviate.
66 * @return integer with minimal number of elements, or null if no minimum is defined
68 @Nullable Integer getMinElements();
71 * Returns the maximum admissible number of data elements for node where
72 * this constraint is specified.
75 * The returning value equals to value of the argument of the
76 * <b>max-elements</b> YANG substatement.
77 * It is used with YANG statements leaf-list, list, deviate.
79 * @return integer with maximum number of elements, or null if no maximum is defined
81 @Nullable Integer getMaxElements();