package org.basex.api.jaxp;
import static org.basex.util.Token.*;
import java.util.Iterator;
import javax.xml.namespace.NamespaceContext;
import org.basex.query.util.NSContext;
import org.basex.util.list.StringList;
/**
* This class provides access to namespace context.
*
* @author BaseX Team 2005-12, BSD License
* @author Christian Gruen
*/
public final class BXNamespaceContext implements NamespaceContext {
/** Namespaces references. */
private final NSContext ns;
/**
* Constructor.
* @param n namespace references
*/
public BXNamespaceContext(final NSContext n) {
ns = n;
}
@Override
public String getNamespaceURI(final String pre) {
final byte[] uri = ns.staticURI(token(pre));
return uri == null ? null : string(uri);
}
@Override
public String getPrefix(final String uri) {
return string(ns.prefix(token(uri)));
}
@Override
public Iterator<String> getPrefixes(final String uri) {
final StringList list = new StringList();
final String pre = getPrefix(uri);
if(!pre.isEmpty()) list.add(pre);
return list.iterator();
}
}