From ef7e872738fc9afdd4315797454257563b3014fe Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 27 Mar 2017 22:38:32 +0100 Subject: Return OptionalInt from findIndex --- .../java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java | 9 +++++---- src/main/java/org/zwobble/mammoth/internal/util/Iterables.java | 7 ++++--- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java b/src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java index 4acce3f..fc8bfb1 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java @@ -11,6 +11,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.OptionalInt; import static org.zwobble.mammoth.internal.util.Casts.tryCast; import static org.zwobble.mammoth.internal.util.Iterables.findIndex; @@ -64,7 +65,7 @@ public class EmbeddedStyleMap { } private static XmlElement updateOrAddElement(XmlElement parent, XmlElement element, String identifyingAttribute) { - int index = findIndex(parent.getChildren(), child -> + OptionalInt index = findIndex(parent.getChildren(), child -> tryCast(XmlElement.class, child) .map(childElement -> childElement.getName().equals(element.getName()) && @@ -74,10 +75,10 @@ public class EmbeddedStyleMap { ); List children = new ArrayList<>(parent.getChildren()); - if (index == -1) { - children.add(element); + if (index.isPresent()) { + children.set(index.getAsInt(), element); } else { - children.set(index, element); + children.add(element); } return new XmlElement(parent.getName(), parent.getAttributes(), children); } diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Iterables.java b/src/main/java/org/zwobble/mammoth/internal/util/Iterables.java index 85fdaee..205f6a2 100644 --- a/src/main/java/org/zwobble/mammoth/internal/util/Iterables.java +++ b/src/main/java/org/zwobble/mammoth/internal/util/Iterables.java @@ -2,6 +2,7 @@ package org.zwobble.mammoth.internal.util; import java.util.Iterator; import java.util.Optional; +import java.util.OptionalInt; import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Predicate; @@ -153,14 +154,14 @@ public class Iterables { return StreamSupport.stream(iterable.spliterator(), false); } - public static int findIndex(Iterable iterable, Predicate predicate) { + public static OptionalInt findIndex(Iterable iterable, Predicate predicate) { int index = 0; for (T element : iterable) { if (predicate.test(element)) { - return index; + return OptionalInt.of(index); } index++; } - return -1; + return OptionalInt.empty(); } } -- cgit v1.2.3