in components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivot.java [81:132]
public Iterator<String> getPrefixes(final String namespaceURI) {
if (namespaceURI == null) {
throw new IllegalArgumentException("namespaceURI can't be null");
} else if (namespaceURI.equals(XMLConstants.XML_NS_URI)) {
return Collections.singleton(XMLConstants.XML_NS_PREFIX).iterator();
} else if (namespaceURI.equals(XMLConstants.XMLNS_ATTRIBUTE_NS_URI)) {
return Collections.singleton(XMLConstants.XMLNS_ATTRIBUTE).iterator();
} else {
final int bindings = getNamespaceBindingsCount();
return new Iterator<String>() {
private int binding = bindings;
private String next;
@Override
public boolean hasNext() {
if (next == null) {
outer:
while (--binding >= 0) {
if (namespaceURI.equals(namespaceStack[binding * 2 + 1])) {
String prefix = namespaceStack[binding * 2];
// Now check that the prefix is not masked
for (int j = binding + 1; j < bindings; j++) {
if (prefix.equals(namespaceStack[j * 2])) {
continue outer;
}
}
next = prefix;
break;
}
}
}
return next != null;
}
@Override
public String next() {
if (hasNext()) {
String result = next;
next = null;
return result;
} else {
throw new NoSuchElementException();
}
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
};
}
}