aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2017-03-27 22:38:32 +0100
committerMichael Williamson <mike@zwobble.org>2017-03-27 22:38:32 +0100
commitef7e872738fc9afdd4315797454257563b3014fe (patch)
treeafeb54aaac2b07bdc45e8499d1991d40568d612a /src/main/java/org/zwobble
parentba33e7b1e5aa6e72f1155cf6d091ba711e69cf90 (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.java9
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/util/Iterables.java7
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();
}
}