diff options
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.java | 9 |
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); } |
