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;
13 * Contains method which returns various data constraints for some YANG element
14 * (e.g. min or max number of elements). Not all constraints are allowed for all
15 * YANG element therefore if the constraint doesn't have sense for some element
16 * then the method returns <code>null</code> value.
18 public interface ConstraintDefinition {
21 * Specifies the condition when the data node which contains
22 * <code>when</code> YANG substatement has to be present. If XPath
23 * expression is evaluated as true then the data node has to be present.
25 * @return XPath expression.
27 RevisionAwareXPath getWhenCondition();
30 * Specifies the rules which the node which contains <code>must</code> YANG
31 * 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.
43 * 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.
61 * The returning value equals to value of the argument of the
62 * <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
68 Integer getMinElements();
71 * Returns the maximum admissible number of data elements for node where
72 * this constraint is specified.
74 * The returning value equals to value of the argument of the
75 * <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
81 Integer getMaxElements();