diff options
| author | Michael Williamson <mike@zwobble.org> | 2017-03-27 22:38:32 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2017-03-27 22:38:32 +0100 |
| commit | ef7e872738fc9afdd4315797454257563b3014fe (patch) | |
| tree | afeb54aaac2b07bdc45e8499d1991d40568d612a /src/main/java/org/zwobble | |
| parent | ba33e7b1e5aa6e72f1155cf6d091ba711e69cf90 (diff) | |
Return OptionalInt from findIndex
Diffstat (limited to 'src/main/java/org/zwobble')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java | 9 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/util/Iterables.java | 7 |
2 files changed, 9 insertions, 7 deletions
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<XmlNode> 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 <T> int findIndex(Iterable<T> iterable, Predicate<T> predicate) { + public static <T> OptionalInt findIndex(Iterable<T> iterable, Predicate<T> predicate) { int index = 0; for (T element : iterable) { if (predicate.test(element)) { - return index; + return OptionalInt.of(index); } index++; } - return -1; + return OptionalInt.empty(); } } |
