code: @Override
     protected void entering(PropertyData property, int level) throws RepositoryException
     {
  
        InternalQName qname = property.getQPath().getName();
  
        List<ValueData> values;
  
        if (ntManager.isNodeType(Constants.MIX_REFERENCEABLE, curParent().getPrimaryTypeName(), curParent()
           .getMixinTypeNames())
           && qname.equals(Constants.JCR_UUID))
        {
           values = new ArrayList<ValueData>(1);
           values.add(new TransientValueData(curParent().getIdentifier()));
        }
        else
        {
           values = copyValues(property);
        }
  
        TransientPropertyData newProperty =
           new TransientPropertyData(QPath.makeChildPath(curParent().getQPath(), qname), keepIdentifiers ? property
              .getIdentifier() : IdGenerator.generate(), -1, property.getType(), curParent().getIdentifier(), property
              .isMultiValued(), values);
  
        itemAddStates.add(new ItemState(newProperty, ItemState.ADDED, true, ancestorToSave, level != 0));
     }
docs: {@inheritDoc}