aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java
diff options
context:
space:
mode:
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.java24
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();
+ }
}