diff options
Diffstat (limited to 'src/main/java/org')
| -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(); } } |
