Add sized Builders methods 15/103315/5
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 21 Nov 2022 21:39:55 +0000 (22:39 +0100)
committerRobert Varga <nite@hq.sk>
Sun, 4 Dec 2022 08:39:09 +0000 (08:39 +0000)
Added sized Builders methods and converted calls on
schema.builder.impl.{Class}Builder.create method to calls on respective
Builders static method. This will allow us to decouple the
implementations going forward.

JIRA: YANGTOOLS-1462
Change-Id: I0466d39ae1ff51b3ec0e75be45147ab2ff4e7b37
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: matusmatok <matus.matok@pantheon.tech>
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/Builders.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNodes.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java

index 639adf2b294110b4d82e0a182b47a56ea0d19e05..96d962eb9d18d077cecd052a1a76226048f067cf 100644 (file)
@@ -72,6 +72,10 @@ public final class Builders {
         return ImmutableUserLeafSetNodeBuilder.create();
     }
 
+    public static <T> ListNodeBuilder<T, UserLeafSetNode<T>> orderedLeafSetBuilder(final UserLeafSetNode<T> node) {
+        return ImmutableUserLeafSetNodeBuilder.create(node);
+    }
+
     public static <T> ListNodeBuilder<T, SystemLeafSetNode<T>> leafSetBuilder() {
         return ImmutableLeafSetNodeBuilder.create();
     }
@@ -80,6 +84,10 @@ public final class Builders {
         return ImmutableLeafSetNodeBuilder.create(node);
     }
 
+    public static <T> ListNodeBuilder<T, SystemLeafSetNode<T>> leafSetBuilder(final int sizeHint) {
+        return ImmutableLeafSetNodeBuilder.create(sizeHint);
+    }
+
     public static DataContainerNodeBuilder<NodeIdentifier, ContainerNode> containerBuilder() {
         return ImmutableContainerNodeBuilder.create();
     }
@@ -89,6 +97,10 @@ public final class Builders {
         return ImmutableContainerNodeBuilder.create(node);
     }
 
+    public static DataContainerNodeBuilder<NodeIdentifier, ContainerNode> containerBuilder(final int sizeHint) {
+        return ImmutableContainerNodeBuilder.create(sizeHint);
+    }
+
     public static DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder() {
         return ImmutableMapEntryNodeBuilder.create();
     }
@@ -98,14 +110,27 @@ public final class Builders {
         return ImmutableMapEntryNodeBuilder.create(mapEntryNode);
     }
 
+    public static DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder(
+            final int sizeHint) {
+        return ImmutableMapEntryNodeBuilder.create(sizeHint);
+    }
+
     public static CollectionNodeBuilder<MapEntryNode, UserMapNode> orderedMapBuilder() {
         return ImmutableUserMapNodeBuilder.create();
     }
 
+    public static CollectionNodeBuilder<MapEntryNode, UserMapNode> orderedMapBuilder(final int sizeHint) {
+        return ImmutableUserMapNodeBuilder.create(sizeHint);
+    }
+
     public static CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> unkeyedListBuilder() {
         return ImmutableUnkeyedListNodeBuilder.create();
     }
 
+    public static CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> unkeyedListBuilder(final int sizeHint) {
+        return ImmutableUnkeyedListNodeBuilder.create(sizeHint);
+    }
+
     public static CollectionNodeBuilder<MapEntryNode, SystemMapNode> mapBuilder() {
         return ImmutableMapNodeBuilder.create();
     }
@@ -114,15 +139,33 @@ public final class Builders {
         return ImmutableMapNodeBuilder.create(node);
     }
 
+    public static CollectionNodeBuilder<MapEntryNode, SystemMapNode> mapBuilder(final int sizeHint) {
+        return ImmutableMapNodeBuilder.create(sizeHint);
+    }
+
     public static DataContainerNodeBuilder<AugmentationIdentifier, AugmentationNode> augmentationBuilder() {
         return ImmutableAugmentationNodeBuilder.create();
     }
 
+    public static DataContainerNodeBuilder<AugmentationIdentifier, AugmentationNode> augmentationBuilder(
+            final int sizeHint) {
+        return ImmutableAugmentationNodeBuilder.create(sizeHint);
+    }
+
     public static DataContainerNodeBuilder<NodeIdentifier, ChoiceNode> choiceBuilder() {
         return ImmutableChoiceNodeBuilder.create();
     }
 
+    public static DataContainerNodeBuilder<NodeIdentifier, ChoiceNode> choiceBuilder(final int sizeHint) {
+        return ImmutableChoiceNodeBuilder.create(sizeHint);
+    }
+
     public static DataContainerNodeBuilder<NodeIdentifier, UnkeyedListEntryNode> unkeyedListEntryBuilder() {
         return ImmutableUnkeyedListEntryNodeBuilder.create();
     }
+
+    public static DataContainerNodeBuilder<NodeIdentifier, UnkeyedListEntryNode> unkeyedListEntryBuilder(
+            final int sizeHint) {
+        return ImmutableUnkeyedListEntryNodeBuilder.create(sizeHint);
+    }
 }
index 51cbd9097c03ddf387459fab69710414b7b374f6..91e7459beaa644838f1dcdf14514bc156f5c3b2d 100644 (file)
@@ -27,13 +27,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.UserMapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder;
 import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.YangInstanceIdentifierWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableChoiceNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserMapNodeBuilder;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
@@ -46,7 +40,7 @@ public final class ImmutableNodes {
     }
 
     public static @NonNull CollectionNodeBuilder<MapEntryNode, SystemMapNode> mapNodeBuilder() {
-        return ImmutableMapNodeBuilder.create();
+        return Builders.mapBuilder();
     }
 
     public static @NonNull CollectionNodeBuilder<MapEntryNode, SystemMapNode> mapNodeBuilder(final QName name) {
@@ -55,7 +49,7 @@ public final class ImmutableNodes {
 
     public static @NonNull CollectionNodeBuilder<MapEntryNode, SystemMapNode> mapNodeBuilder(
             final NodeIdentifier name) {
-        return ImmutableMapNodeBuilder.create().withNodeIdentifier(name);
+        return Builders.mapBuilder().withNodeIdentifier(name);
     }
 
     /**
@@ -95,7 +89,7 @@ public final class ImmutableNodes {
      * @return An ordered Map node
      */
     public static @NonNull UserMapNode orderedMapNode(final NodeIdentifier name) {
-        return ImmutableUserMapNodeBuilder.create().withNodeIdentifier(name).build();
+        return Builders.orderedMapBuilder().withNodeIdentifier(name).build();
     }
 
     /**
@@ -124,13 +118,13 @@ public final class ImmutableNodes {
 
     public static @NonNull DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder(
             final QName nodeName, final QName keyName, final Object keyValue) {
-        return ImmutableMapEntryNodeBuilder.create()
+        return Builders.mapEntryBuilder()
                 .withNodeIdentifier(NodeIdentifierWithPredicates.of(nodeName, keyName, keyValue))
                 .withChild(leafNode(keyName, keyValue));
     }
 
     public static @NonNull DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder() {
-        return ImmutableMapEntryNodeBuilder.create();
+        return Builders.mapEntryBuilder();
     }
 
     public static @NonNull MapEntryNode mapEntry(final QName nodeName, final QName keyName, final Object keyValue) {
@@ -154,7 +148,7 @@ public final class ImmutableNodes {
      * @return A container node
      */
     public static @NonNull ContainerNode containerNode(final NodeIdentifier name) {
-        return ImmutableContainerNodeBuilder.create().withNodeIdentifier(name).build();
+        return Builders.containerBuilder().withNodeIdentifier(name).build();
     }
 
     /**
@@ -174,7 +168,7 @@ public final class ImmutableNodes {
      * @return A choice node
      */
     public static @NonNull ChoiceNode choiceNode(final NodeIdentifier name) {
-        return ImmutableChoiceNodeBuilder.create().withNodeIdentifier(name).build();
+        return Builders.choiceBuilder().withNodeIdentifier(name).build();
     }
 
     /**
@@ -194,7 +188,7 @@ public final class ImmutableNodes {
      * @return An unkeyed list node
      */
     public static @NonNull UnkeyedListNode listNode(final NodeIdentifier name) {
-        return ImmutableUnkeyedListNodeBuilder.create().withNodeIdentifier(name).build();
+        return Builders.unkeyedListBuilder().withNodeIdentifier(name).build();
     }
 
     /**
index 665d99e3d46001a956071253a4895e43cfb8ce24..46f2b7c25bd5631bb2ec82afc5840687de40c314 100644 (file)
@@ -26,17 +26,11 @@ import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNode
 import org.opendaylight.yangtools.yang.data.api.schema.builder.NormalizedNodeBuilder;
 import org.opendaylight.yangtools.yang.data.api.schema.builder.NormalizedNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAnyXmlNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAnydataNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAugmentationNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableChoiceNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListEntryNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserLeafSetNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserMapNodeBuilder;
@@ -166,7 +160,7 @@ public class ImmutableNormalizedNodeStreamWriter implements NormalizedNodeStream
     public boolean startAnyxmlNode(final NodeIdentifier name, final Class<?> objectModel) {
         checkDataNodeContainer();
         if (DOMSource.class.isAssignableFrom(objectModel)) {
-            enter(name, ImmutableAnyXmlNodeBuilder.create());
+            enter(name, Builders.anyXmlBuilder());
             nextSchema = null;
             return true;
         }
@@ -176,15 +170,15 @@ public class ImmutableNormalizedNodeStreamWriter implements NormalizedNodeStream
     @Override
     public void startContainerNode(final NodeIdentifier name, final int childSizeHint) {
         checkDataNodeContainer();
-        enter(name, UNKNOWN_SIZE == childSizeHint ? ImmutableContainerNodeBuilder.create()
-                : ImmutableContainerNodeBuilder.create(childSizeHint));
+        enter(name, UNKNOWN_SIZE == childSizeHint ? Builders.containerBuilder()
+            : Builders.containerBuilder(childSizeHint));
     }
 
     @Override
     public void startUnkeyedList(final NodeIdentifier name, final int childSizeHint) {
         checkDataNodeContainer();
-        enter(name, UNKNOWN_SIZE == childSizeHint ? ImmutableUnkeyedListNodeBuilder.create()
-                : ImmutableUnkeyedListNodeBuilder.create(childSizeHint));
+        enter(name, UNKNOWN_SIZE == childSizeHint ? Builders.unkeyedListBuilder()
+            : Builders.unkeyedListBuilder(childSizeHint));
     }
 
     @Override
@@ -192,15 +186,14 @@ public class ImmutableNormalizedNodeStreamWriter implements NormalizedNodeStream
         final NormalizedNodeBuilder<?, ?, ?> current = current();
         checkArgument(current instanceof ImmutableUnkeyedListNodeBuilder
             || current instanceof NormalizedNodeResultBuilder);
-        enter(name, UNKNOWN_SIZE == childSizeHint ? ImmutableUnkeyedListEntryNodeBuilder.create()
-                : ImmutableUnkeyedListEntryNodeBuilder.create(childSizeHint));
+        enter(name, UNKNOWN_SIZE == childSizeHint ? Builders.unkeyedListEntryBuilder()
+            : Builders.unkeyedListEntryBuilder(childSizeHint));
     }
 
     @Override
     public void startMapNode(final NodeIdentifier name, final int childSizeHint) {
         checkDataNodeContainer();
-        enter(name, UNKNOWN_SIZE == childSizeHint ? ImmutableMapNodeBuilder.create()
-                : ImmutableMapNodeBuilder.create(childSizeHint));
+        enter(name, UNKNOWN_SIZE == childSizeHint ? Builders.mapBuilder() : Builders.mapBuilder(childSizeHint));
     }
 
     @Override
@@ -209,22 +202,21 @@ public class ImmutableNormalizedNodeStreamWriter implements NormalizedNodeStream
         checkArgument(current instanceof ImmutableMapNodeBuilder || current instanceof ImmutableUserMapNodeBuilder
             || current instanceof NormalizedNodeResultBuilder);
 
-        enter(identifier, UNKNOWN_SIZE == childSizeHint ? ImmutableMapEntryNodeBuilder.create()
-                : ImmutableMapEntryNodeBuilder.create(childSizeHint));
+        enter(identifier, UNKNOWN_SIZE == childSizeHint ? Builders.mapEntryBuilder()
+            : Builders.mapEntryBuilder(childSizeHint));
     }
 
     @Override
     public void startOrderedMapNode(final NodeIdentifier name, final int childSizeHint) {
         checkDataNodeContainer();
-        enter(name, UNKNOWN_SIZE == childSizeHint ? ImmutableUserMapNodeBuilder.create()
-                : ImmutableUserMapNodeBuilder.create(childSizeHint));
+        enter(name, UNKNOWN_SIZE == childSizeHint ? Builders.orderedMapBuilder()
+            : Builders.orderedMapBuilder(childSizeHint));
     }
 
     @Override
     public void startChoiceNode(final NodeIdentifier name, final int childSizeHint) {
         checkDataNodeContainer();
-        enter(name, UNKNOWN_SIZE == childSizeHint ? ImmutableChoiceNodeBuilder.create()
-                : ImmutableChoiceNodeBuilder.create(childSizeHint));
+        enter(name, UNKNOWN_SIZE == childSizeHint ? Builders.choiceBuilder() : Builders.choiceBuilder(childSizeHint));
     }
 
     @Override
@@ -273,7 +265,7 @@ public class ImmutableNormalizedNodeStreamWriter implements NormalizedNodeStream
     @Override
     public boolean startAnydataNode(final NodeIdentifier name, final Class<?> objectModel) throws IOException {
         checkDataNodeContainer();
-        enter(name, ImmutableAnydataNodeBuilder.create(objectModel));
+        enter(name, Builders.anydataBuilder(objectModel));
         // We support all object models
         return true;
     }