protected void checkDuplicateResources(CDORevision revision) throws IllegalStateException { final long folderID = CDOIDUtil.getLong((CDOID) revision.data().getContainerID()); final long revisionID = CDOIDUtil.getLong(revision.getID()); final String name = (String) revision.data().get(EresourcePackage.eINSTANCE.getCDOResourceNode_Name(), 0); ObjectSet<DB4ORevision> resultSet = getObjectContainer() .query( new Predicate<DB4ORevision>() { private static final long serialVersionUID = 1L; @Override public boolean match(DB4ORevision revision) { if (revision.isResourceNode() && ObjectUtil.equals(revision.getContainerID(), folderID)) { String candidateName = (String) revision.getValues().get(EresourcePackage.CDO_RESOURCE__NAME); if (StringUtil.compare(name, candidateName) == 0) { if (!ObjectUtil.equals(revision.getID(), revisionID)) { return true; } } } return false; } }); if (!resultSet.isEmpty()) { throw new IllegalStateException( "Duplicate resource or folder: " + name + " in folder " + folderID); //$NON-NLS-1$ //$NON-NLS-2$ } }