// TODO what to do if REFERENCE property target doesn't exists in workspace
if (currentNode() != null)
{
NodeData frozenParent = (NodeData)dataManager.getItemData(property.getParentIdentifier());
InternalQName qname = property.getQPath().getName();
if (nodeTypeDataManager.isNodeType(Constants.NT_FROZENNODE, frozenParent.getPrimaryTypeName()))
if (qname.equals(Constants.JCR_FROZENPRIMARYTYPE))
{
qname = Constants.JCR_PRIMARYTYPE;
}
else if (qname.equals(Constants.JCR_FROZENUUID))
{
qname = Constants.JCR_UUID;
}
else if (qname.equals(Constants.JCR_FROZENMIXINTYPES))
{
qname = Constants.JCR_MIXINTYPES;
}
else if (qname.equals(Constants.JCR_PRIMARYTYPE) || qname.equals(Constants.JCR_UUID)
|| qname.equals(Constants.JCR_MIXINTYPES))
{
// skip these props, as they are a nt:frozenNode special props
return;
}
int action =
nodeTypeDataManager.getPropertyDefinitions(qname, currentNode().getPrimaryTypeName(),
currentNode().getMixinTypeNames()).getAnyDefinition().getOnParentVersion();
if (log.isDebugEnabled())
{
log.debug("Visit property " + property.getQPath().getAsString() + " "
+ currentNode().getQPath().getAsString() + " " + OnParentVersionAction.nameFromValue(action));
}
if (action == OnParentVersionAction.COPY || action == OnParentVersionAction.VERSION
|| action == OnParentVersionAction.INITIALIZE || action == OnParentVersionAction.COMPUTE)
{
// In case of COPY, VERSION - copy property
PropertyData tagetProperty = null;
if (qname.equals(Constants.JCR_PREDECESSORS))
{
tagetProperty =
TransientPropertyData.createPropertyData(currentNode(), qname, property.getType(), property
.isMultiValued(), new ArrayList<ValueData>());
}