diff options
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java | 24 |
1 files changed, 22 insertions, 2 deletions
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<NamespacePrefix> { 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<NamespacePrefix> lookupUri(String uri) { return lookup(uriToPrefix, uri); } + + public Optional<NamespacePrefix> lookupPrefix(String prefix) { + return lookupPrefix(Optional.of(prefix)); + } + + public Optional<NamespacePrefix> defaultNamespace() { + return lookupPrefix(Optional.empty()); + } + + private Optional<NamespacePrefix> lookupPrefix(Optional<String> prefix) { + return Iterables.tryFind(uriToPrefix.values(), namespace -> namespace.getPrefix().equals(prefix)); + } + + @Override + public Iterator<NamespacePrefix> iterator() { + return uriToPrefix.values().iterator(); + } } |
