BUG-1275: optimized set instantiation ChoiceNodeBaseSerializer 40/8540/1
authorRobert Varga <rovarga@cisco.com>
Wed, 2 Jul 2014 11:42:19 +0000 (13:42 +0200)
committerRobert Varga <rovarga@cisco.com>
Wed, 2 Jul 2014 11:47:59 +0000 (13:47 +0200)
The hashset used in getRealSchemasForAugment() can be initialized when
allocated, potentially saving some reallocation.

Change-Id: Ib848074716f5f4de108e6b348f0fed2f20bc6dcf
Signed-off-by: Robert Varga <rovarga@cisco.com>
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/NormalizedNodeUtils.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/base/serializer/ChoiceNodeBaseSerializer.java

index 9542a2b0a12bc1cd5af1eb1da08468c0e0e738ff..1197f56427977e85857c7ee83188e8aecc91a478 100644 (file)
@@ -9,6 +9,8 @@ package org.opendaylight.yangtools.yang.data.impl.schema;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
+import com.google.common.base.Optional;
+
 import java.util.Iterator;
 
 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
@@ -22,8 +24,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
-import com.google.common.base.Optional;
-
 public final class NormalizedNodeUtils {
     private NormalizedNodeUtils() {
         throw new UnsupportedOperationException("Utilities class should not be instantiated");
@@ -43,7 +43,7 @@ public final class NormalizedNodeUtils {
         checkNotNull(path, "Path must not be null");
 
         Optional<NormalizedNode<?, ?>> currentNode = Optional.<NormalizedNode<?, ?>> of(tree);
-        final Iterator<PathArgument> pathIterator = path.getPath().iterator();
+        final Iterator<PathArgument> pathIterator = path.getPathArguments().iterator();
         while (currentNode.isPresent() && pathIterator.hasNext()) {
             currentNode = getDirectChild(currentNode.get(), pathIterator.next());
         }
index 4f329b15ef0ee55093ccaa8a575023c3ff6df5ec..9805b8eb23c83f169df17c2a8e6fd917cca27f70 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.data.impl.schema.transform.base.serializer;
 
+import java.util.HashSet;
 import java.util.Set;
 
 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
@@ -19,8 +20,6 @@ import org.opendaylight.yangtools.yang.model.api.AugmentationTarget;
 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 
-import com.google.common.collect.Sets;
-
 /**
  * Abstract(base) serializer for ChoiceNodes, serializes elements of type E.
  *
@@ -31,22 +30,20 @@ public abstract class ChoiceNodeBaseSerializer<E>
         BaseDispatcherSerializer<E, ChoiceNode, org.opendaylight.yangtools.yang.model.api.ChoiceNode> {
 
     @Override
-    protected final DataSchemaNode getSchemaForChild(org.opendaylight.yangtools.yang.model.api.ChoiceNode schema,
-            DataContainerChild<? extends InstanceIdentifier.PathArgument, ?> childNode) {
+    protected final DataSchemaNode getSchemaForChild(final org.opendaylight.yangtools.yang.model.api.ChoiceNode schema,
+            final DataContainerChild<? extends InstanceIdentifier.PathArgument, ?> childNode) {
         return SchemaUtils.findSchemaForChild(schema, childNode.getNodeType());
     }
 
     @Override
-    protected final AugmentationSchema getAugmentedCase(org.opendaylight.yangtools.yang.model.api.ChoiceNode schema,
-            AugmentationNode augmentationNode) {
+    protected final AugmentationSchema getAugmentedCase(final org.opendaylight.yangtools.yang.model.api.ChoiceNode schema,
+            final AugmentationNode augmentationNode) {
         return SchemaUtils.findSchemaForAugment(schema, augmentationNode.getIdentifier().getPossibleChildNames());
     }
 
     @Override
-    protected final Set<DataSchemaNode> getRealSchemasForAugment(org.opendaylight.yangtools.yang.model.api.ChoiceNode schema, AugmentationSchema augmentationSchema) {
-        Set<DataSchemaNode> aggregatedSchemas = Sets.newHashSet();
-
-        aggregatedSchemas.addAll(SchemaUtils.getRealSchemasForAugment(schema, augmentationSchema));
+    protected final Set<DataSchemaNode> getRealSchemasForAugment(final org.opendaylight.yangtools.yang.model.api.ChoiceNode schema, final AugmentationSchema augmentationSchema) {
+        Set<DataSchemaNode> aggregatedSchemas = new HashSet<>(SchemaUtils.getRealSchemasForAugment(schema, augmentationSchema));
 
         for (ChoiceCaseNode choiceCaseNode : schema.getCases()) {
             aggregatedSchemas.addAll(SchemaUtils.getRealSchemasForAugment((AugmentationTarget) choiceCaseNode, augmentationSchema));