List<RelatedDefinition<PropertyDefinitionData>> changedDefinitionData, List<NodeData> nodesData,
PropertyDefinitionData[] allRecipientDefinition) throws RepositoryException
{
for (RelatedDefinition<PropertyDefinitionData> relatedDefinitions : changedDefinitionData)
{
PropertyDefinitionData ancestorDefinitionData = relatedDefinitions.getAncestorDefinition();
PropertyDefinitionData recipientDefinitionData = relatedDefinitions.getRecepientDefinition();
// change from mandatory=false to mandatory = true
if (!ancestorDefinitionData.isMandatory() && recipientDefinitionData.isMandatory())
{
checkMandatory(registeredNodeType, nodesData, recipientDefinitionData);
}
// No need to check protected
// change from Protected=false to Protected = true
// if (!ancestorDefinitionData.isProtected() &&
// recipientDefinitionData.isProtected()) {
// checkProtected(registeredNodeType, nodesData, recipientDefinitionData);
// }
// Required type change
if (ancestorDefinitionData.getRequiredType() != recipientDefinitionData.getRequiredType()
&& recipientDefinitionData.getRequiredType() != PropertyType.UNDEFINED)
{
checkRequiredType(registeredNodeType, recipientDefinitionData, allRecipientDefinition, nodesData);
}
// ValueConstraints
if (!Arrays.deepEquals(ancestorDefinitionData.getValueConstraints(),
recipientDefinitionData.getValueConstraints()))
{
checkValueConstraints(registeredNodeType, recipientDefinitionData, allRecipientDefinition, nodesData);
}
// multiple change
if (ancestorDefinitionData.isMultiple() && !recipientDefinitionData.isMultiple())
{
checkIsMultiple(registeredNodeType, recipientDefinitionData, allRecipientDefinition, nodesData);
}
}