From 3b306d59bb9abcbb061735d4ae0cc40522c2ce0c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 13 Feb 2016 19:03:49 +0000 Subject: Read bold runs --- src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java | 9 ++++++++- src/main/java/org/zwobble/mammoth/xml/NullXmlElement.java | 5 +++++ src/main/java/org/zwobble/mammoth/xml/XmlElement.java | 5 +++++ src/main/java/org/zwobble/mammoth/xml/XmlElementLike.java | 1 + 4 files changed, 19 insertions(+), 1 deletion(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java index e9fca9c..2982916 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java @@ -49,7 +49,14 @@ public class BodyXmlReader { return ReadResult.map( readRunStyle(properties), readElements(element.children()), - (style, children) -> new Run(false, style, children)); + (style, children) -> new Run( + isBold(properties), + style, + children)); + } + + private boolean isBold(XmlElementLike properties) { + return properties.hasChild("w:b"); } private Result> readRunStyle(XmlElementLike properties) { diff --git a/src/main/java/org/zwobble/mammoth/xml/NullXmlElement.java b/src/main/java/org/zwobble/mammoth/xml/NullXmlElement.java index 05bfa78..0bec026 100644 --- a/src/main/java/org/zwobble/mammoth/xml/NullXmlElement.java +++ b/src/main/java/org/zwobble/mammoth/xml/NullXmlElement.java @@ -8,6 +8,11 @@ public class NullXmlElement implements XmlElementLike { private NullXmlElement() { } + @Override + public boolean hasChild(String name) { + return false; + } + @Override public XmlElementLike findChildOrEmpty(String name) { return this; diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlElement.java b/src/main/java/org/zwobble/mammoth/xml/XmlElement.java index c487a7e..cf1dc67 100644 --- a/src/main/java/org/zwobble/mammoth/xml/XmlElement.java +++ b/src/main/java/org/zwobble/mammoth/xml/XmlElement.java @@ -71,6 +71,11 @@ public class XmlElement implements XmlNode, XmlElementLike { return findChildrenIterable(name).iterator().next(); } + @Override + public boolean hasChild(String name) { + return findChildrenIterable(name).iterator().hasNext(); + } + @Override public XmlElementLike findChildOrEmpty(String name) { return getFirst(findChildrenIterable(name), NullXmlElement.INSTANCE); diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlElementLike.java b/src/main/java/org/zwobble/mammoth/xml/XmlElementLike.java index 06193a7..adba7c8 100644 --- a/src/main/java/org/zwobble/mammoth/xml/XmlElementLike.java +++ b/src/main/java/org/zwobble/mammoth/xml/XmlElementLike.java @@ -3,6 +3,7 @@ package org.zwobble.mammoth.xml; import java.util.Optional; public interface XmlElementLike { + boolean hasChild(String name); XmlElementLike findChildOrEmpty(String name); Optional getAttributeOrNone(String name); } -- cgit v1.2.3