package ezvcard.io.xml;
import java.util.Arrays;
import java.util.Iterator;
import javax.xml.namespace.NamespaceContext;
import javax.xml.xpath.XPath;
import ezvcard.VCardVersion;
/**
* Used for xCard XPath expressions.
* @see XPath#setNamespaceContext(NamespaceContext)
* @author Michael Angstadt
*/
public class XCardNamespaceContext implements NamespaceContext {
private final String ns;
private final String prefix;
/**
* @param version the vCard version to use
* @param prefix the prefix to use
*/
public XCardNamespaceContext(VCardVersion version, String prefix) {
this.ns = version.getXmlNamespace();
this.prefix = prefix;
}
/**
* Gets the prefix to use in xpath expressions.
* @return the xpath prefix
*/
public String getPrefix() {
return prefix;
}
//@Override
public String getNamespaceURI(String prefix) {
if (this.prefix.equals(prefix)) {
return ns;
}
return null;
}
//@Override
public String getPrefix(String ns) {
if (this.ns.equals(ns)) {
return prefix;
}
return null;
}
//@Override
public Iterator<String> getPrefixes(String ns) {
if (this.ns.equals(ns)) {
return Arrays.asList(prefix).iterator();
}
return null;
}
}