package org.opendaylight.yangtools.yang.parser.builder.api;
import java.util.List;
-
-import org.opendaylight.yangtools.yang.model.api.YangNode;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.concepts.Mutable;
/**
* Parent interface for all builder interfaces.
*/
-public interface Builder {
+public interface Builder extends Mutable {
/**
- * Get name of module in which this node is declared.
+ * Returns name of module in which node created by this builder
+ * was declared.
*
* @return module name
*/
* Set name of module in which this node is declared.
*
* @param moduleName
+ * @deprecated Module name should be set during creation of builder.
*/
+ @Deprecated
void setModuleName(String moduleName);
/**
- * Get current line in yang file.
+ * Get current line in yang file, on which statement
+ * associated with this builder was declared.
*
* @return current line in yang file
*/
int getLine();
/**
- * Get parent node of this node.
+ * Returns parent node builder of this node.
*
* @return parent node builder or null if this is top level node
*/
void setParent(Builder parent);
/**
- * Add unknown node to this builder.
+ * Adds an unknown node builder to this builder.
+ *
+ * When product (child) is builded by the {@link #build()}
+ * method, this builder is also built and unknown node is added
+ * as child to the product of this builder.
*
* @param unknownNode
*/
*
* @return collection of UnknownSchemaNodeBuilder objects
*/
- List<UnknownSchemaNodeBuilder> getUnknownNodeBuilders();
+ List<UnknownSchemaNodeBuilder> getUnknownNodes();
/**
* Build YANG data model node.
*
* @return YANG data model node
*/
- Object build(YangNode parent);
+ Object build();
- interface Rebuildable<T extends Builder> {
- T toBuilder();
- }
}