From 559c31d2f28d9a77655538d994c3213d916b8d0c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 13 Nov 2016 22:10:33 +0000 Subject: Ensure embedded style map is not removed by Word --- .../mammoth/internal/xml/NamespacePrefixes.java | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java') diff --git a/src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java b/src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java index 44e5676..ff644f1 100644 --- a/src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java +++ b/src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java @@ -1,12 +1,15 @@ package org.zwobble.mammoth.internal.xml; +import org.zwobble.mammoth.internal.util.Iterables; + import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.Optional; import static org.zwobble.mammoth.internal.util.Maps.lookup; -public class NamespacePrefixes { +public class NamespacePrefixes implements Iterable { public static Builder builder() { return new Builder(); } @@ -23,7 +26,7 @@ public class NamespacePrefixes { uriToPrefix.put(uri, new NamespacePrefix(Optional.empty(), uri)); return this; } - + public NamespacePrefixes build() { return new NamespacePrefixes(uriToPrefix); } @@ -38,4 +41,21 @@ public class NamespacePrefixes { public Optional lookupUri(String uri) { return lookup(uriToPrefix, uri); } + + public Optional lookupPrefix(String prefix) { + return lookupPrefix(Optional.of(prefix)); + } + + public Optional defaultNamespace() { + return lookupPrefix(Optional.empty()); + } + + private Optional lookupPrefix(Optional prefix) { + return Iterables.tryFind(uriToPrefix.values(), namespace -> namespace.getPrefix().equals(prefix)); + } + + @Override + public Iterator iterator() { + return uriToPrefix.values().iterator(); + } } -- cgit v1.2.3