ps.println("All NodeTypes:");
ps.println();
try {
NodeTypeIterator iter = this.getAllNodeTypes();
while (iter.hasNext()) {
NodeType nt = iter.nextNodeType();
ps.println(nt.getName());
ps.println("\tSupertypes");
for (NodeType supertype : nt.getSupertypes()) {
ps.println("\t\t" + supertype.getName());
}
ps.println("\tMixin\t" + nt.isMixin());
ps.println("\tOrderableChildNodes\t" + nt.hasOrderableChildNodes());
ps.println("\tPrimaryItemName\t" + (nt.getPrimaryItemName() == null ? "<null>" : nt.getPrimaryItemName()));
for (PropertyDefinition aPd : nt.getPropertyDefinitions()) {
ps.print("\tPropertyDefinition");
ps.println(" (declared in " + aPd.getDeclaringNodeType().getName() + ") ");
ps.println("\t\tName\t\t" + (aPd.getName()));
String type = aPd.getRequiredType() == 0 ? "null" : PropertyType.nameFromValue(aPd.getRequiredType());
ps.println("\t\tRequiredType\t" + type);
String[] vca = aPd.getValueConstraints();
StringBuffer constraints = new StringBuffer();
if (vca == null) {
constraints.append("<null>");
} else {
for (String aVca : vca) {
if (constraints.length() > 0) {
constraints.append(", ");
}
constraints.append(aVca);
}
}
ps.println("\t\tValueConstraints\t" + constraints.toString());
Value[] defVals = aPd.getDefaultValues();
StringBuffer defaultValues = new StringBuffer();
if (defVals == null) {
defaultValues.append("<null>");
} else {
for (Value defVal : defVals) {
if (defaultValues.length() > 0) {
defaultValues.append(", ");
}
defaultValues.append(defVal.getString());
}
}
ps.println("\t\tDefaultValue\t" + defaultValues.toString());
ps.println("\t\tAutoCreated\t" + aPd.isAutoCreated());
ps.println("\t\tMandatory\t" + aPd.isMandatory());
ps.println("\t\tOnVersion\t" + OnParentVersionAction.nameFromValue(aPd.getOnParentVersion()));
ps.println("\t\tProtected\t" + aPd.isProtected());
ps.println("\t\tMultiple\t" + aPd.isMultiple());
}
for (NodeDefinition aNd : nt.getChildNodeDefinitions()) {
ps.print("\tNodeDefinition");
ps.println(" (declared in " + aNd.getDeclaringNodeType() + ") ");
ps.println("\t\tName\t\t" + aNd.getName());
NodeType[] reqPrimaryTypes = aNd.getRequiredPrimaryTypes();
if (reqPrimaryTypes != null && reqPrimaryTypes.length > 0) {
for (NodeType reqPrimaryType : reqPrimaryTypes) {
ps.print("\t\tRequiredPrimaryType\t" + reqPrimaryType.getName());
}
}
NodeType defPrimaryType = aNd.getDefaultPrimaryType();
if (defPrimaryType != null) {
ps.print("\n\t\tDefaultPrimaryType\t" + defPrimaryType.getName());
}
ps.println("\n\t\tAutoCreated\t" + aNd.isAutoCreated());
ps.println("\t\tMandatory\t" + aNd.isMandatory());
ps.println("\t\tOnVersion\t" + OnParentVersionAction.nameFromValue(aNd.getOnParentVersion()));
ps.println("\t\tProtected\t" + aNd.isProtected());