2 * Copyright (c) 2016 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;
10 import com.google.common.annotations.Beta;
11 import java.util.Collection;
12 import org.eclipse.jdt.annotation.NonNull;
13 import org.opendaylight.yangtools.yang.model.api.stmt.DeviateEffectiveStatement;
14 import org.opendaylight.yangtools.yang.model.api.stmt.UniqueEffectiveStatement;
17 * Interface describing YANG 'deviate' statement.
20 * The 'deviate' statement defines how the device's implementation of
21 * the target node deviates from its original definition.
22 * The argument is one of the strings "not-supported", "add", "replace", or "delete".
25 public interface DeviateDefinition extends EffectiveStatementEquivalent<DeviateEffectiveStatement> {
27 * Return deviation kind.
29 * @return enum which describes the type of this deviate statement
31 DeviateKind getDeviateType();
34 * Returns deviated config value.
36 * @return value of the deviated config statement or null if it is not deviated
38 Boolean getDeviatedConfig();
41 * Returns deviated default value.
43 * @return value of the deviated default statement or null if it is not deviated
45 String getDeviatedDefault();
48 * Returns deviated mandatory value.
50 * @return value of the deviated mandatory statement or null if it is not deviated
52 Boolean getDeviatedMandatory();
55 * Returns deviated max-elements.
57 * @return value of the deviated max-elements statement or null if it is not deviated
59 Integer getDeviatedMaxElements();
62 * Returns deviated min-elements.
64 * @return value of the deviated min-elements statement or null if it is not deviated
66 Integer getDeviatedMinElements();
69 * Returns deviated must statements.
71 * @return set of the deviated must statements
73 Collection<? extends @NonNull MustDefinition> getDeviatedMusts();
76 * Returns deviated type statement.
78 * @return deviated type statement or null if it is not deviated
80 TypeDefinition<?> getDeviatedType();
83 * Returns deviated unique statements.
85 * @return collection of the deviated unique statements
87 Collection<? extends @NonNull UniqueEffectiveStatement> getDeviatedUniques();
90 * Returns deviated units statement.
92 * @return value of the deviated units statement or null if it is not deviated
94 String getDeviatedUnits();