Merge "Added compilation of model for YANG extension"
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / SchemaNode.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.yang.model.api;
9
10 import java.util.List;
11
12 import org.opendaylight.yangtools.yang.common.QName;
13
14 /**
15  * SchemaNode represents a node in schema tree.
16  */
17 public interface SchemaNode {
18
19     /**
20      * Returns QName of the instance of the type <code>SchemaNode</code>.
21      * 
22      * @return QName with the name of the schema node
23      */
24     public QName getQName();
25
26     /**
27      * Returns the schema path of the instance of the type
28      * <code>SchemaNode</code> <code>SchemaNode</code>.
29      * 
30      * @return schema path of the schema node
31      */
32     public SchemaPath getPath();
33
34     /**
35      * Returns description of the instance of the type <code>SchemaNode</code>
36      * 
37      * @return string with textual description the node which represents the
38      *         argument of the YANG <code>description</code> substatement
39      */
40     public String getDescription();
41
42     /**
43      * Returns reference of the instance of the type <code>SchemaNode</code>
44      * 
45      * The reference refers to external document that provides additional
46      * information relevant for the instance of this type.
47      * 
48      * @return string with the reference to some external document which
49      *         represents the argument of the YANG <code>reference</code>
50      *         substatement
51      */
52     public String getReference();
53
54     /**
55      * Returns status of the instance of the type <code>SchemaNode</code>
56      * 
57      * @return status of this node which represents the argument of the YANG
58      *         <code>status</code> substatement
59      */
60     public Status getStatus();
61
62     /**
63      * 
64      * Returns unknown schema nodes which belongs to this instance of the type
65      * <code>SchemaNode</code>.
66      * 
67      * @return list of unknown schema nodes defined under this schema node.
68      */
69     public List<UnknownSchemaNode> getUnknownSchemaNodes();
70
71 }