code: public boolean canRemoveItem(String itemName)
     {
        try
        {
           InternalQName iname = locationFactory.parseJCRName(itemName).getInternalName();
  
           PropertyDefinitionDatas pdefs = nodeTypeDataManager.getPropertyDefinitions(iname, nodeTypeData.getName());
           if (pdefs != null)
           {
              PropertyDefinitionData pd = pdefs.getAnyDefinition();
              if (pd != null)
                 return !(pd.isMandatory() || pd.isProtected());
           }
           NodeDefinitionData cndef = nodeTypeDataManager.getChildNodeDefinition(iname, nodeTypeData.getName());
           if (cndef != null)
              return !(cndef.isMandatory() || cndef.isProtected());
  
           return false;
        }
        catch (RepositoryException e)
        {
           if (LOG.isDebugEnabled())
              LOG.debug("canRemoveItem " + e, e);
           return false;
        }
     }
docs: {@inheritDoc}