Merge "BUG-2470: implement InMemoryDataTree.toString()"
authorTony Tkacik <ttkacik@cisco.com>
Wed, 10 Dec 2014 15:34:58 +0000 (15:34 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 10 Dec 2014 15:34:58 +0000 (15:34 +0000)
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/EnumTemplate.xtend
code-generator/maven-sal-api-gen-plugin/pom.xml
common/parent/pom.xml
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/NormalizedNodeContainerModificationStrategy.java

index cc05fb49120d10dbfc12e065d76440dd837ae6f8..417451bc181eee82bc51d14c51909aeb56430d8c 100644 (file)
@@ -58,14 +58,16 @@ class EnumTemplate extends BaseTemplate {
 
 
             int value;
-            static java.util.Map<java.lang.Integer, «enums.name»> valueMap;
+            private static final java.util.Map<java.lang.Integer, «enums.name»> VALUE_MAP;
 
             static {
-                valueMap = new java.util.HashMap<>();
+                final com.google.common.collect.ImmutableMap.Builder<java.lang.Integer, «enums.name»> b = com.google.common.collect.ImmutableMap.builder();
                 for («enums.name» enumItem : «enums.name».values())
                 {
-                    valueMap.put(enumItem.value, enumItem);
+                    b.put(enumItem.value, enumItem);
                 }
+
+                VALUE_MAP = b.build();
             }
         
             private «enums.name»(int value) {
@@ -84,7 +86,7 @@ class EnumTemplate extends BaseTemplate {
              * @return corresponding «enums.name» item
              */
             public static «enums.name» forValue(int valueArg) {
-                return valueMap.get(valueArg);
+                return VALUE_MAP.get(valueArg);
             }
         }
     '''
index ec862465669992981b907c253a7a25a1b664ca06..f8ccd295a21b245bc927a267b9821857177939cf 100644 (file)
             <artifactId>plexus-slf4j-logging</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>org.sonatype.sisu</groupId>
-            <artifactId>sisu-guava</artifactId>
-            <version>0.11.1</version>
-            <scope>runtime</scope>
-        </dependency>
-
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
index 277ad18dd9e25fea9fcb88ceb8789c017152410c..7a213959341bd941e4f29f6a3d045d521fed8f3f 100644 (file)
             <dependency>
                 <groupId>org.apache.maven</groupId>
                 <artifactId>maven-core</artifactId>
-                <version>3.0.5</version>
+                <version>3.1.1</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.maven</groupId>
                 <artifactId>maven-plugin-api</artifactId>
-                <version>3.0.5</version>
+                <version>3.1.1</version>
             </dependency>
             <dependency>
                 <groupId>org.javassist</groupId>
         </pluginManagement>
 
         <plugins>
-            <!--
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-enforcer-plugin</artifactId>
-                <version>1.0</version>
+                <!--
                 <executions>
                     <execution>
-                        <id>enforce</id>
+                        <id>enforce-dependencies</id>
                         <configuration>
                             <rules>
                                 <DependencyConvergence />
                         </goals>
                     </execution>
                 </executions>
+                -->
             </plugin>
-            -->
+
             <plugin>
                 <artifactId>maven-clean-plugin</artifactId>
                 <version>2.5</version>
index 52aa03eed2be09bd1d526d5f13e56980b0481a12..cd27513ba036d9261990de4c133bc83a140100c9 100644 (file)
@@ -148,10 +148,20 @@ abstract class NormalizedNodeContainerModificationStrategy extends SchemaAwareAp
         final MutableTreeNode newMeta = currentMeta.mutable();
         newMeta.setSubtreeVersion(version);
 
+        /*
+         * The user has issued an empty merge operation. In this case we do not perform
+         * a data tree mutation, do not pass GO, and do not collect useless garbage.
+         */
+        final Iterable<ModifiedNode> children = modification.getChildren();
+        if (Iterables.isEmpty(children)) {
+            newMeta.setData(currentMeta.getData());
+            return newMeta.seal();
+        }
+
         @SuppressWarnings("rawtypes")
         NormalizedNodeContainerBuilder dataBuilder = createBuilder(currentMeta.getData());
 
-        return mutateChildren(newMeta, dataBuilder, version, modification.getChildren());
+        return mutateChildren(newMeta, dataBuilder, version, children);
     }
 
     @Override