From 6eeb4e35d4116e90aef6a49276c103e55c7dcef3 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 11 Sep 2017 18:15:31 +0200 Subject: [PATCH] Eliminate use of temporary lists Switch to using Lists/Iterables.transform(), which are lazily evaluated and are really what we need. Change-Id: Ib3e993a116c585060a04c74c911bde087388ae51 Signed-off-by: Robert Varga --- .../api/generator/util/TextTemplateUtil.java | 55 +++---------------- 1 file changed, 8 insertions(+), 47 deletions(-) diff --git a/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/util/TextTemplateUtil.java b/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/util/TextTemplateUtil.java index d1b6569dcd..fe9b90a485 100644 --- a/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/util/TextTemplateUtil.java +++ b/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/util/TextTemplateUtil.java @@ -12,7 +12,8 @@ import com.google.common.base.CharMatcher; import com.google.common.base.Preconditions; import com.google.common.base.Splitter; import com.google.common.base.Strings; -import java.util.LinkedList; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import java.util.List; import java.util.StringTokenizer; import org.opendaylight.mdsal.binding.javav2.generator.util.Types; @@ -34,7 +35,6 @@ public final class TextTemplateUtil { public static final String PATTERN_CONSTANT_NAME = "PATTERN_CONSTANTS"; private static final char NEW_LINE = '\n'; - private static final String COMMA = ","; private static final String UNDERSCORE = "_"; private static final CharMatcher NEWLINE_OR_TAB = CharMatcher.anyOf("\n\t"); private static final CharMatcher NL_MATCHER = CharMatcher.is(NEW_LINE); @@ -126,11 +126,7 @@ public final class TextTemplateUtil { */ //FIXME: this needs further clarification in future patch public static String valueForBits(final List properties) { - final List strings = new LinkedList<>(); - for (final GeneratedProperty property : properties) { - strings.add(fieldName(property)); - } - return String.join(",", strings); + return String.join(",", Lists.transform(properties, TextTemplateUtil::fieldName)); } /** @@ -225,17 +221,7 @@ public final class TextTemplateUtil { * @return generated properties as formatted String */ public static String propsAsArgs(final Iterable properties) { - final List strings = new LinkedList<>(); - if (properties.iterator().hasNext()) { - for (final GeneratedProperty property : properties) { - final StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("\"") - .append(property.getName()) - .append("\""); - strings.add(stringBuilder.toString()); - } - } - return String.join(",", strings); + return String.join(",", Iterables.transform(properties, prop -> "\"" + prop.getName() + "\"")); } /** @@ -245,17 +231,8 @@ public final class TextTemplateUtil { * @return Properties as formatted String */ public static String propsAsList(final Iterable properties, final String booleanName) { - final List strings = new LinkedList<>(); - if (properties.iterator().hasNext()) { - for (final GeneratedProperty property : properties) { - final StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("properties.get(i++).equals(defaultValue) ? ") - .append(booleanName) - .append(".TRUE : null"); - strings.add(stringBuilder.toString()); - } - } - return String.join(",", strings); + return String.join(",", Iterables.transform(properties, + prop -> "properties.get(i++).equals(defaultValue) ? " + booleanName + ".TRUE : null")); } /** @@ -291,13 +268,7 @@ public final class TextTemplateUtil { * @return string with the list of the parameter names */ public static String asArguments(final List parameters) { - final List strings = new LinkedList<>(); - if (!parameters.isEmpty()) { - for (final GeneratedProperty parameter : parameters) { - strings.add(fieldName(parameter)); - } - } - return String.join(", ", strings); + return String.join(", ", Lists.transform(parameters, TextTemplateUtil::fieldName)); } /** @@ -378,17 +349,7 @@ public final class TextTemplateUtil { * @return formatted property list as String */ public static String getPropertyList(final List properties) { - final List strings = new LinkedList<>(); - if (!properties.isEmpty()) { - for (final GeneratedProperty property : properties) { - final StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("base.") - .append(getterMethodName(property)) - .append("()"); - strings.add(stringBuilder.toString()); - } - } - return String.join(", ", strings); + return String.join(", ", Lists.transform(properties, prop -> "base." + getterMethodName(prop) + "()")); } /** -- 2.36.6