return;
if (log.isDebugEnabled())
log.debug("registering custom namespaces " + namespaces);
NamespaceRegistry registry = getSession().getWorkspace().getNamespaceRegistry();
// do the lookup, so we avoid exceptions
String[] prefixes = registry.getPrefixes();
// sort the array
Arrays.sort(prefixes);
// unregister namespaces if told so
if (forceNamespacesRegistration) {
// save the old namespace only if it makes sense
if (!keepNewNamespaces)
overwrittenNamespaces = new HashMap(namespaces.size());
// search occurences
for (Iterator iter = namespaces.keySet().iterator(); iter.hasNext();) {
String prefix = (String) iter.next();
int position = Arrays.binarySearch(prefixes, prefix);
if (position >= 0) {
if (log.isDebugEnabled()) {
log.debug("prefix " + prefix + " was already registered; unregistering it");
}
if (!keepNewNamespaces) {
// save old namespace
overwrittenNamespaces.put(prefix, registry.getURI(prefix));
}
registry.unregisterNamespace(prefix);
// postpone registration for later
}
}
}
// do the registration
for (Iterator iter = namespaces.entrySet().iterator(); iter.hasNext();) {
Map.Entry namespace = (Map.Entry) iter.next();
String prefix = (String) namespace.getKey();
String ns = (String) namespace.getValue();
int position = Arrays.binarySearch(prefixes, prefix);
if (skipExistingNamespaces && position >= 0) {
log.debug("namespace already registered under [" + prefix + "]; skipping registration");
}
else {
log.debug("registering namespace [" + ns + "] under [" + prefix + "]");
registry.registerNamespace(prefix, ns);
}
}
}