franta-hg@15: /**
franta-hg@15: * Free Telco Dictionary
franta-hg@15: * Copyright © 2013 František Kučera (frantovo.cz)
franta-hg@15: *
franta-hg@15: * This program is free software: you can redistribute it and/or modify
franta-hg@15: * it under the terms of the GNU General Public License as published by
franta-hg@15: * the Free Software Foundation, either version 3 of the License, or
franta-hg@15: * (at your option) any later version.
franta-hg@15: *
franta-hg@15: * This program is distributed in the hope that it will be useful,
franta-hg@15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
franta-hg@15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
franta-hg@15: * GNU General Public License for more details.
franta-hg@15: *
franta-hg@15: * You should have received a copy of the GNU General Public License
franta-hg@15: * along with this program. If not, see .
franta-hg@15: */
franta-hg@15: package cz.frantovo.telco.dictionary;
franta-hg@15:
franta-hg@15: import static cz.frantovo.telco.dictionary.Functions.*;
franta-hg@15: import java.util.Iterator;
franta-hg@15: import java.util.Map;
franta-hg@15: import java.util.Map.Entry;
franta-hg@15: import javax.xml.namespace.NamespaceContext;
franta-hg@15:
franta-hg@15: /**
franta-hg@15: *
franta-hg@15: * @author Ing. František Kučera (frantovo.cz)
franta-hg@15: */
franta-hg@15: public class MappedNamespaceContext implements NamespaceContext {
franta-hg@15:
franta-hg@15: /**
franta-hg@15: * maps prexix to namespace URI
franta-hg@15: */
franta-hg@15: private Map prefixMap;
franta-hg@15:
franta-hg@15: public MappedNamespaceContext(Map prefixMap) {
franta-hg@15: this.prefixMap = prefixMap;
franta-hg@15: }
franta-hg@15:
franta-hg@15: @Override
franta-hg@15: public String getNamespaceURI(String prefix) {
franta-hg@15: return prefixMap.get(prefix);
franta-hg@15: }
franta-hg@15:
franta-hg@15: @Override
franta-hg@15: public String getPrefix(String xmlns) {
franta-hg@15: for (Entry e : prefixMap.entrySet()) {
franta-hg@15: if (equalz(xmlns, e.getValue())) {
franta-hg@15: return e.getKey();
franta-hg@15: }
franta-hg@15: }
franta-hg@15: return null;
franta-hg@15: }
franta-hg@15:
franta-hg@15: /**
franta-hg@15: * TODO: support multiple prefixes
franta-hg@15: */
franta-hg@15: @Override
franta-hg@15: public Iterator getPrefixes(String xmlns) {
franta-hg@15: return new OneItemIterator(getPrefix(xmlns));
franta-hg@15: }
franta-hg@15: }