BUG 1131: untangling package cyclic dependencies in yang-parser-impl
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / api / UnknownSchemaNodeBuilder.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3  * This program and the accompanying materials are made available under the
4  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
5  * and is available at http://www.eclipse.org/legal/epl-v10.html
6  */
7 package org.opendaylight.yangtools.yang.parser.builder.api;
8
9 import org.opendaylight.yangtools.yang.common.QName;
10 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
11 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
12 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
13
14 public interface UnknownSchemaNodeBuilder extends SchemaNodeBuilder, DocumentedNodeBuilder {
15
16     @Override
17     SchemaPath getPath();
18
19     /**
20      * Returns true if node was added via uses statement
21      *
22      * @return true if node was added via uses statement
23      */
24     boolean isAddedByUses();
25
26     /**
27      * Sets flag if node was introduced by uses statement
28      *
29      * @param addedByUses true if node was introduced by uses, false otherwise
30      */
31     void setAddedByUses(boolean addedByUses);
32
33     /**
34      *
35      * Returns QName associated with this unknown node.
36      *
37      * @return QName associated with this unknown node.
38      */
39     QName getNodeType();
40
41     /**
42      * Returns string representation of argument associated with this unknown node.
43      *
44      * @return string representation of argument associated with this unknown node.
45      */
46     String getNodeParameter();
47
48     /**
49      * Sets string representation of argument associated with this unknown node.
50      * @param nodeParameter string representation of argument associated with this unknown node.
51      */
52     void setNodeParameter(String nodeParameter);
53
54     /**
55      * Returns extension definition, which declares this unknown node
56      * @return extension definition, which declares this unknown node
57      */
58     ExtensionDefinition getExtensionDefinition();
59
60     /**
61      * Sets extension definition, which declares this unknown node
62      * @param extensionDefinition extension definition, which declares this unknown node
63      */
64     void setExtensionDefinition(ExtensionDefinition extensionDefinition);
65
66     /**
67      * Returns builder for extension, which declares this unknown node.
68      *
69      * @return builder for extension, which declares this unknown node.
70      */
71     ExtensionBuilder getExtensionBuilder();
72
73     /**
74      * Sets extension builder, which declares this unknown node
75      * @param extensionBuilder extension definition, which declares this unknown node
76      */
77     void setExtensionBuilder(ExtensionBuilder extension);
78
79     @Override
80     UnknownSchemaNode build();
81
82     /**
83      * Sets node type associated with this unknown schema node
84      *
85      * @param qName node type associated with this unknown schema node
86      */
87     void setNodeType(QName qName);
88
89 }