aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java9
1 files changed, 5 insertions, 4 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);
}