/* The contents of this file are subject to the license and copyright terms
* detailed in the license directory at the root of the source tree (also
* available online at http://fedora-commons.org/license/).
*/
package fedora.common.policy;
import java.util.Vector;
public abstract class XacmlNamespace {
public String uri;
private final Vector<XacmlNamespace> memberNamespaces =
new Vector<XacmlNamespace>();
private final Vector<XacmlName> memberNames = new Vector<XacmlName>();
protected XacmlNamespace(XacmlNamespace parent, String localName) {
uri = (parent == null ? "" : parent.uri + ":") + localName;
}
XacmlNamespace addNamespace(XacmlNamespace namespace) {
XacmlNamespace result = null;
if (memberNamespaces.add(namespace)) {
result = namespace;
}
return result;
}
XacmlName addName(XacmlName name) {
XacmlName result = null;
if (memberNames.add(name)) {
result = name;
}
return result;
}
public void flatRep(Vector<XacmlName> flatRep) {
flatRep.addAll(memberNames);
for (int i = 0; i < memberNamespaces.size(); i++) {
memberNamespaces.get(i).flatRep(flatRep);
}
}
}