Collection<Namespace> (Collection<Namespace> namespaces, Collection<Namespace> cache, boolean merge) { if (cache == null) return namespaces; final Set<Namespace> n; if (merge) { n = new HashSet<>(cache); n.removeAll(namespaces); n.addAll(namespaces); } else { n = new HashSet<>(namespaces); for (Namespace namespace : n) { for (Namespace cached : cache) { if (namespace.getUri().equals(cached.getUri())) { namespace.setPrefix(cached.prefix); } } } } return n; }