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
diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UnknownSchemaNodeBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UnknownSchemaNodeBuilder.java
new file mode 100644 (file)
index 0000000..3b0cb96
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.builder.api;
+
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
+
+public interface UnknownSchemaNodeBuilder extends SchemaNodeBuilder, DocumentedNodeBuilder {
+
+    @Override
+    SchemaPath getPath();
+
+    /**
+     * Returns true if node was added via uses statement
+     *
+     * @return true if node was added via uses statement
+     */
+    boolean isAddedByUses();
+
+    /**
+     * Sets flag if node was introduced by uses statement
+     *
+     * @param addedByUses true if node was introduced by uses, false otherwise
+     */
+    void setAddedByUses(boolean addedByUses);
+
+    /**
+     *
+     * Returns QName associated with this unknown node.
+     *
+     * @return QName associated with this unknown node.
+     */
+    QName getNodeType();
+
+    /**
+     * Returns string representation of argument associated with this unknown node.
+     *
+     * @return string representation of argument associated with this unknown node.
+     */
+    String getNodeParameter();
+
+    /**
+     * Sets string representation of argument associated with this unknown node.
+     * @param nodeParameter string representation of argument associated with this unknown node.
+     */
+    void setNodeParameter(String nodeParameter);
+
+    /**
+     * Returns extension definition, which declares this unknown node
+     * @return extension definition, which declares this unknown node
+     */
+    ExtensionDefinition getExtensionDefinition();
+
+    /**
+     * Sets extension definition, which declares this unknown node
+     * @param extensionDefinition extension definition, which declares this unknown node
+     */
+    void setExtensionDefinition(ExtensionDefinition extensionDefinition);
+
+    /**
+     * Returns builder for extension, which declares this unknown node.
+     *
+     * @return builder for extension, which declares this unknown node.
+     */
+    ExtensionBuilder getExtensionBuilder();
+
+    /**
+     * Sets extension builder, which declares this unknown node
+     * @param extensionBuilder extension definition, which declares this unknown node
+     */
+    void setExtensionBuilder(ExtensionBuilder extension);
+
+    @Override
+    UnknownSchemaNode build();
+
+    /**
+     * Sets node type associated with this unknown schema node
+     *
+     * @param qName node type associated with this unknown schema node
+     */
+    void setNodeType(QName qName);
+
+}
\ No newline at end of file