throws PathNotFoundException, IllegalPathException, RepositoryException
{
int newIndex = 1;
NodeDefinitionData nodedef =
nodeTypeDataManager.getChildNodeDefinition(name, parentData.getPrimaryTypeName(), parentData
.getMixinTypeNames());
ItemData sameNameNode = null;
try
{
sameNameNode = dataConsumer.getItemData(parentData, new QPathEntry(name, 0), ItemType.NODE, false);
}
catch (PathNotFoundException e)
{
// Ok no same name node;
return newIndex;
}
List<ItemState> transientAddChilds = getItemStatesList(parentData, name, ItemState.ADDED, skipIdentifier);
List<ItemState> transientDeletedChilds =
getItemStatesList(parentData, new QPathEntry(name, 0), ItemState.DELETED, null);
if (!nodedef.isAllowsSameNameSiblings() && ((sameNameNode != null) || (transientAddChilds.size() > 0)))
{
if ((sameNameNode != null) && (transientDeletedChilds.size() < 1))
{
throw new ItemExistsException("The node already exists in " + sameNameNode.getQPath().getAsString()
+ " and same name sibling is not allowed ");