@Override public boolean delete(FileData data) { try { String path = data.getName(); ArtefactAPI artefact = getArtefact(path); if (artefact == null) { return false; } if (artefact.hasProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION)) { throw new ProjectException("Project ''{0}'' is already marked for deletion!", null, path); } artefact.addProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION, ValueType.BOOLEAN, true); return true; } catch (CommonException e) { log.error(e.getMessage(), e); return false; } }
@Override public boolean delete(FileData data) { try { String path = data.getName(); ArtefactAPI artefact = getArtefact(path); if (artefact == null) { return false; } if (artefact.hasProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION)) { throw new ProjectException("Project ''{0}'' is already marked for deletion!", null, path); } artefact.addProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION, ValueType.BOOLEAN, true); return true; } catch (CommonException e) { log.error(e.getMessage(), e); return false; } }
@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; } }
private FileData createFileData(String name, ArtefactAPI project) throws PropertyException { FileData fileData = new FileData(); fileData.setName(name); // It's impossible to calculate zip size if project contains artefacts if (((FolderAPI) project).getArtefacts().size() == 0) { fileData.setSize(0); } fileData.setDeleted(project.hasProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION)); if (project.hasProperty(ArtefactProperties.VERSION_COMMENT)) { Property property = project.getProperty(ArtefactProperties.VERSION_COMMENT); fileData.setComment(property.getString()); } ProjectVersion version = project.getVersion(); fileData.setAuthor(version.getVersionInfo().getCreatedBy()); fileData.setModifiedAt(version.getVersionInfo().getCreatedAt()); fileData.setVersion(String.valueOf(version.getRevision())); return fileData; }
private FileData createFileData(String name, ArtefactAPI project) throws PropertyException { FileData fileData = new FileData(); fileData.setName(name); // It's impossible to calculate zip size if project contains artefacts if (((FolderAPI) project).getArtefacts().size() == 0) { fileData.setSize(0); } fileData.setDeleted(project.hasProperty(ArtefactProperties.PROP_PRJ_MARKED_4_DELETION)); if (project.hasProperty(ArtefactProperties.VERSION_COMMENT)) { Property property = project.getProperty(ArtefactProperties.VERSION_COMMENT); fileData.setComment(property.getString()); } ProjectVersion version = project.getVersion(); fileData.setAuthor(version.getVersionInfo().getCreatedBy()); fileData.setModifiedAt(version.getVersionInfo().getCreatedAt()); fileData.setVersion(String.valueOf(version.getRevision())); return fileData; }
@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; } }