node.setDefinitionId(def.getId());
// now add new child node entry to parent
parent.addChildNodeEntry(nodeName, id);
EffectiveNodeType ent = getEffectiveNodeType(node);
if (!node.getMixinTypeNames().isEmpty()) {
// create jcr:mixinTypes property
PropDef pd = ent.getApplicablePropertyDef(QName.JCR_MIXINTYPES,
PropertyType.NAME, true);
createPropertyState(node, pd.getName(), pd.getRequiredType(), pd);
}
// add 'auto-create' properties defined in node type
PropDef[] pda = ent.getAutoCreatePropDefs();
for (int i = 0; i < pda.length; i++) {
PropDef pd = pda[i];
createPropertyState(node, pd.getName(), pd.getRequiredType(), pd);
}
// recursively add 'auto-create' child nodes defined in node type
NodeDef[] nda = ent.getAutoCreateNodeDefs();
for (int i = 0; i < nda.length; i++) {
NodeDef nd = nda[i];
createNodeState(node, nd.getName(), nd.getDefaultPrimaryType(),
null, null, nd);
}