Merge "Bug 865: Fixed incorrect conversion to new APIs."
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / api / UsesNodeBuilder.java
index f27af6e0cb5dd4215d349a8e4123bc06b64bcdb1..f24e1695d8a72cd30d39069f598e8b02bd70b675 100644 (file)
@@ -9,24 +9,21 @@ package org.opendaylight.yangtools.yang.parser.builder.api;
 
 import java.util.List;
 import java.util.Set;
-
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.model.api.YangNode;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.RefineHolder;
 
 /**
- * Interface for builders of 'uses' statement.
+ * Builder for  'uses' statement.
  */
-public interface UsesNodeBuilder extends GroupingMember, Builder {
+public interface UsesNodeBuilder extends GroupingMember {
 
     /**
      * Get parent of this uses node. Since uses can be defined only under on of
      * module, container, list, case, grouping, input, output, notification or
      * augment, return type is DataNodeContainerBuilder.
      */
+    @Override
     DataNodeContainerBuilder getParent();
 
     /**
@@ -88,25 +85,6 @@ public interface UsesNodeBuilder extends GroupingMember, Builder {
      */
     void setAugmenting(boolean augmenting);
 
-    /**
-     * Get augment under which was this uses node was defined.
-     * <p>
-     * Note: This method may return different object than {@link #getParent()}
-     * if this node is a copy of other uses node. If the uses node is copied,
-     * its parent has changed, but parent augment is always same.
-     * </p>
-     *
-     * @return AugmentationSchemaBuilder under which was this node defined
-     */
-    AugmentationSchemaBuilder getParentAugment();
-
-    /**
-     * Set augment under which was this uses node was defined.
-     *
-     * @param augment
-     */
-    void setParentAugment(AugmentationSchemaBuilder augment);
-
     /**
      * Get augmentations defined in this uses node.
      *
@@ -127,7 +105,7 @@ public interface UsesNodeBuilder extends GroupingMember, Builder {
      *
      * @return list of RefineHolder objects
      */
-    List<RefineHolder> getRefines();
+    List<RefineBuilder> getRefines();
 
     /**
      * Get refined nodes.
@@ -142,7 +120,7 @@ public interface UsesNodeBuilder extends GroupingMember, Builder {
      * @param refine
      *            new RefineHolder object
      */
-    void addRefine(RefineHolder refine);
+    void addRefine(RefineBuilder refine);
 
     /**
      * Add refine node.
@@ -154,56 +132,31 @@ public interface UsesNodeBuilder extends GroupingMember, Builder {
 
     /**
      * Build new UsesNode object.
-     */
-    UsesNode build(YangNode parent);
-
-    /**
-     * Get child nodes defined in target grouping.
-     *
-     * @return set of DataSchemaNodeBuilder objects
-     */
-    Set<DataSchemaNodeBuilder> getTargetChildren();
-
-    /**
-     * Get groupings defined in target grouping.
      *
-     * @return set of GroupingBuilder objects
-     */
-    Set<GroupingBuilder> getTargetGroupings();
-
-    /**
-     * Get type definitions defined in target grouping.
      *
-     * @return set of typedefs defined in target grouping
+     * @return UsesNode Instance of {@link UsesNode} described by this builder.
      */
-    Set<TypeDefinitionBuilder> getTargetTypedefs();
+    @Override
+    UsesNode build();
 
     /**
-     * Get unknown nodes defined in target grouping.
      *
-     * @return list of unknown nodes defined in target grouping
-     */
-    List<UnknownSchemaNodeBuilder> getTargetUnknownNodes();
-
-    /**
+     * Returns true if uses node was resolved and {@link #getGroupingBuilder()}
+     * was instantiated for parent done of this node.
      *
-     * @return true, if this object was built based on another UsesNodeBuilder,
-     *         false otherwise
+     * @return true if uses node was resolved and associated nodes were instantiated in parent node.
      */
-    boolean isCopy();
+    boolean isResolved();
 
     /**
      *
-     * @return true, if target grouping objects was loaded already, false
-     *         otherwise
-     */
-    boolean isDataCollected();
-
-    /**
-     * Set if target grouping objects was loaded already.
+     * Sets state of instantiation of {@link #getGroupingBuilder()}
+     * into parent node of this node.
      *
-     * @param dataCollected
+     * @deprecated Do not use this, this should be internal to the implementation
+     *  and public API contract.
      */
-    void setDataCollected(boolean dataCollected);
+    @Deprecated
+    void setResolved(boolean resolved);
 
 }