//-------------------------------------------------------< Dumpable >---
public void dump(PrintStream ps) {
Iterator iter = nodetypeDefinitions.values().iterator();
while (iter.hasNext()) {
QNodeTypeDefinition ntd = (QNodeTypeDefinition) iter.next();
ps.println(ntd.getName());
Name[] supertypes = ntd.getSupertypes();
ps.println("\tSupertypes");
for (int i = 0; i < supertypes.length; i++) {
ps.println("\t\t" + supertypes[i]);
}
ps.println("\tMixin\t" + ntd.isMixin());
ps.println("\tOrderableChildNodes\t" + ntd.hasOrderableChildNodes());
ps.println("\tPrimaryItemName\t" + (ntd.getPrimaryItemName() == null ? "<null>" : ntd.getPrimaryItemName().toString()));
QPropertyDefinition[] pd = ntd.getPropertyDefs();
for (int i = 0; i < pd.length; i++) {
ps.print("\tPropertyDefinition");
ps.println(" (declared in " + pd[i].getDeclaringNodeType() + ") ");
ps.println("\t\tName\t\t" + (pd[i].definesResidual() ? "*" : pd[i].getName().toString()));
String type = pd[i].getRequiredType() == 0 ? "null" : PropertyType.nameFromValue(pd[i].getRequiredType());
ps.println("\t\tRequiredType\t" + type);
String[] vca = pd[i].getValueConstraints();
StringBuffer constraints = new StringBuffer();
if (vca == null) {
constraints.append("<null>");
} else {
for (int n = 0; n < vca.length; n++) {
if (constraints.length() > 0) {
constraints.append(", ");
}
constraints.append(vca[n]);
}
}
ps.println("\t\tValueConstraints\t" + constraints.toString());
QValue[] defVals = pd[i].getDefaultValues();
StringBuffer defaultValues = new StringBuffer();
if (defVals == null) {
defaultValues.append("<null>");
} else {
for (int n = 0; n < defVals.length; n++) {
if (defaultValues.length() > 0) {
defaultValues.append(", ");
}
try {
defaultValues.append(defVals[n].getString());
} catch (RepositoryException e) {
defaultValues.append(defVals[n].toString());
}
}
}
ps.println("\t\tDefaultValue\t" + defaultValues.toString());
ps.println("\t\tAutoCreated\t" + pd[i].isAutoCreated());
ps.println("\t\tMandatory\t" + pd[i].isMandatory());
ps.println("\t\tOnVersion\t" + OnParentVersionAction.nameFromValue(pd[i].getOnParentVersion()));
ps.println("\t\tProtected\t" + pd[i].isProtected());
ps.println("\t\tMultiple\t" + pd[i].isMultiple());
}
QNodeDefinition[] nd = ntd.getChildNodeDefs();
for (int i = 0; i < nd.length; i++) {
ps.print("\tNodeDefinition");
ps.println(" (declared in " + nd[i].getDeclaringNodeType() + ") ");
ps.println("\t\tName\t\t" + (nd[i].definesResidual() ? "*" : nd[i].getName().toString()));
Name[] reqPrimaryTypes = nd[i].getRequiredPrimaryTypes();