package org.ovirt.engine.core.utils.ovf.xml; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import javax.xml.namespace.NamespaceContext; public class XmlNamespaceManager implements NamespaceContext { private Map<String, String> prefixToUri; public XmlNamespaceManager() { prefixToUri = new HashMap<>(); } public void addNamespace(String prefix, String uri) { prefixToUri.put(prefix, uri); } @Override public String getNamespaceURI(String prefix) { return prefixToUri.get(prefix); } @Override public String getPrefix(String namespaceURI) { for (Map.Entry<String, String> prexiToUriEntry : prefixToUri.entrySet()) { if (prexiToUriEntry.getValue().equals(namespaceURI)) { return prexiToUriEntry.getKey(); } } return null; } @Override public Iterator<String> getPrefixes(String namespaceURI) { List<String> prefixes = new LinkedList<>(); for (Map.Entry<String, String> prefixToUriEntry : prefixToUri.entrySet()) { if (prefixToUriEntry.getValue().equals(namespaceURI)) { prefixes.add(prefixToUriEntry.getKey()); } } return prefixes.iterator(); } }