summaryrefslogtreecommitdiffstats
path: root/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/MultiNamingContext.java
diff options
context:
space:
mode:
authorMarek Gradzki <mgradzki@cisco.com>2017-12-13 17:15:53 +0100
committerMarek Gradzki <mgradzki@cisco.com>2017-12-13 16:45:04 +0000
commit4840c9fc6ab956d6210ac33d8e9c5b1abbc4172e (patch)
treeed12e09ac706e3c172a3a948a1528e173718d153 /vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/MultiNamingContext.java
parent938e017b9a471c078a3bbc2213b4638315b2f8df (diff)
(Multi)NamingContext: increment after computing max
Instead of incrementing all elements of stream and applying max, first compute max and then increment. Change-Id: I4e45ffa74d9b8685abd7bafaddc77d1d9850abdb Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/MultiNamingContext.java')
-rw-r--r--vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/MultiNamingContext.java21
1 files changed, 12 insertions, 9 deletions
diff --git a/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/MultiNamingContext.java b/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/MultiNamingContext.java
index 6b10881d6..4d0e7a98f 100644
--- a/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/MultiNamingContext.java
+++ b/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/MultiNamingContext.java
@@ -23,6 +23,7 @@ import com.google.common.base.Optional;
import io.fd.honeycomb.translate.MappingContext;
import io.fd.honeycomb.translate.util.RWUtils;
import java.util.Collections;
+import java.util.OptionalInt;
import java.util.stream.Collectors;
import javax.annotation.Nonnull;
import org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.multi.naming.context.rev160411.MultiMappingCtxAugmentation;
@@ -134,15 +135,17 @@ public class MultiNamingContext {
return startIndex;
}
- return read.get().getMapping()
- .stream()
- .filter(mapping -> mapping.getName().equals(parentName))
- .flatMap(mapping -> mapping.getValue().stream())
- .mapToInt(Value::getIndex)
- // do not use i++(need increase before, not after
- .map(i -> ++i)
- .max()
- .orElse(startIndex);
+ final OptionalInt max = read.get().getMapping()
+ .stream()
+ .filter(mapping -> mapping.getName().equals(parentName))
+ .flatMap(mapping -> mapping.getValue().stream())
+ .mapToInt(Value::getIndex)
+ .max();
+ if (max.isPresent()) {
+ return max.getAsInt() + 1;
+ } else {
+ return startIndex;
+ }
}
private KeyedInstanceIdentifier<Mapping, MappingKey> getMappingIid(final String name) {