private void deleteAbsentFiles(List<String> newFiles, FolderAPI folder, String prefix, CommonUser user) throws ProjectException { for (ArtefactAPI artefact : folder.getArtefacts()) { if (artefact instanceof ResourceAPI) { if (!newFiles.contains(prefix + artefact.getName())) { artefact.delete(user); } } else { deleteAbsentFiles(newFiles, (FolderAPI) artefact, prefix + artefact.getName() + "/", user); } } }
private void deleteAbsentFiles(List<String> newFiles, FolderAPI folder, String prefix) throws ProjectException { for (ArtefactAPI artefact : folder.getArtefacts()) { if (artefact instanceof ResourceAPI) { if (!newFiles.contains(prefix + artefact.getName())) { artefact.delete(getUser()); } } else { deleteAbsentFiles(newFiles, (FolderAPI) artefact, prefix + artefact.getName() + "/"); } } }
@Override public boolean deleteHistory(String name, String version) { try { ArtefactAPI artefact = getArtefact(name); if (artefact == null) { return false; } if (version == null) { artefact.delete(getUser()); return true; } else { if (!artefact.hasProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION)) { throw new ProjectException("Project ''{0}'' isn't marked for deletion. The method deleteHistory() in JCR Repository is supported only for undelete and erase.", null, name); } artefact.removeProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION); return true; } } catch (CommonException e) { log.error(e.getMessage(), e); return false; } }
((ResourceAPI) artefact).setContent(in); } else { artefact.delete(user); artefact = createResource(resourceName, in);
((ResourceAPI) artefact).setContent(in); } else { artefact.delete(user); artefact = createResource(resourceName, in);
@Override public boolean deleteHistory(FileData data) { String name = data.getName(); String version = data.getVersion(); try { ArtefactAPI artefact = getArtefact(name); if (artefact == null) { return false; } if (version == null) { CommonUser user = data.getAuthor() == null ? getUser() : new CommonUserImpl(data.getAuthor()); artefact.delete(user); return true; } else { if (!artefact.hasProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION)) { throw new ProjectException("Project ''{0}'' isn't marked for deletion. The method deleteHistory() in JCR Repository is supported only for undelete and erase.", null, name); } artefact.removeProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION); return true; } } catch (CommonException e) { log.error(e.getMessage(), e); return false; } }