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;
10 import com.google.common.base.Preconditions;
11 import java.util.List;
14 * Interface describing YANG 'deviation' statement.
16 * The 'deviation' statement defines a hierarchy of a module that the device
17 * does not implement faithfully. Deviations define the way a device deviate
21 public interface Deviation {
24 * Enum describing YANG deviation 'deviate' statement. It defines how the
25 * device's implementation of the target node deviates from its original
29 NOT_SUPPORTED("not-supported"), ADD("add"), REPLACE("replace"), DELETE("delete");
31 private final String keyword;
33 Deviate(final String keyword) {
34 this.keyword = Preconditions.checkNotNull(keyword);
38 * @return String that corresponds to the yang keyword.
40 public String getKeyword() {
46 * @return SchemaPath that identifies the node in the schema tree where a
47 * deviation from the module occurs.
49 SchemaPath getTargetPath();
52 * @return deviate statement of this deviation
57 * @return textual cross-reference to an external document that provides
58 * additional information relevant to this node.
60 String getReference();
63 * @return collection of all unknown nodes defined under this schema node.
65 List<UnknownSchemaNode> getUnknownSchemaNodes();