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) {
* @return corresponding «enums.name» item
*/
public static «enums.name» forValue(int valueArg) {
- return valueMap.get(valueArg);
+ return VALUE_MAP.get(valueArg);
}
}
'''
<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>
<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>
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