@Override public boolean delete(FileData data) { File file = new File(root, data.getName()); boolean deleted = file.delete(); // Delete empty parent folders while (!(file = file.getParentFile()).equals(root) && file.delete()); return deleted; }
@Override public List<FileData> list(String path) throws IOException { List<FileData> list = super.list(path); for (Iterator<FileData> iterator = list.iterator(); iterator.hasNext(); ) { FileData fileData = iterator.next(); if (propertiesEngine.isPropertyFile(fileData.getName())) { // Property files must be hidden iterator.remove(); } } return list; }
@Override public FileData copy(String srcName, FileData destData) throws IOException { File srcFile = new File(root, srcName); String destName = destData.getName(); File destFile = new File(root, destName); FileUtils.copy(srcFile, destFile); return getFileData(destFile); }
@Override public String getInternalPath() { String projectPath = getProject().getFileData().getName(); return folderPath.startsWith(projectPath + "/") ? folderPath.substring(projectPath.length() + 1) : folderPath; }
@Override public FileData copy(String srcName, FileData destData) throws IOException { File srcFile = new File(root, srcName); String destName = destData.getName(); File destFile = new File(root, destName); FileUtils.copy(srcFile, destFile); return getFileData(destFile); }
@Override public boolean delete(FileData data) { boolean deleted = super.delete(data); if (deleted) { notifyModified(data.getName()); } return deleted; }
@Override public FileData save(FileData data, InputStream stream) throws IOException { FileData fileData = super.save(data, stream); notifyModified(data.getName()); return fileData; }
public AProject(Repository repository, FileData fileData) { super(null, repository, fileData.getName(), fileData.getVersion()); setFileData(fileData); }
@Override public FileData save(FileData folderData, Iterable<FileChange> files) throws IOException { FileData fileData = super.save(folderData, files); notifyModified(folderData.getName()); return fileData; }
@Override public FileData copyHistory(String srcName, FileData destData, String version) throws IOException { try { CopyObjectRequest request = new CopyObjectRequest(bucketName, srcName, version, bucketName, destData.getName()); CopyObjectResult result = s3.copyObject(request); onModified(); return checkHistory(destData.getName(), result.getVersionId()); } catch (SdkClientException e) { throw new IOException(e); } }
@Override public FileData copy(String srcPath, FileData destData) throws IOException { FileData fileData = super.copy(srcPath, destData); notifyModified(destData.getName()); return fileData; }
@Override public FileData rename(String path, FileData destData) throws IOException { FileData fileData = super.rename(path, destData); notifyModified(destData.getName()); return fileData; }
@Override public boolean delete(FileData data) { try { s3.deleteObject(bucketName, data.getName()); onModified(); return true; } catch (SdkClientException e) { log.error(e.getMessage(), e); return false; } }
protected ProjectVersion getVersion(int index) { List<FileData> fileDatas; try { fileDatas = getRepository().listHistory(getFileData().getName()); } catch (IOException ex) { throw RuntimeExceptionWrapper.wrap(ex); } return fileDatas.isEmpty() ? null : createProjectVersion(fileDatas.get(index)); }
public ProjectVersion getLastVersion() { List<FileData> fileDatas; try { fileDatas = getRepository().listHistory(getFileData().getName()); } catch (IOException ex) { throw RuntimeExceptionWrapper.wrap(ex); } return fileDatas.isEmpty() ? createProjectVersion(null) : createProjectVersion(fileDatas.get(fileDatas.size() - 1)); }
public int getVersionsCount() { try { return getFileData() == null ? 0 : getRepository().listHistory(getFileData().getName()).size(); } catch (IOException ex) { throw RuntimeExceptionWrapper.wrap(ex); } }
public InputStream getContent() throws ProjectException { try { if (isHistoric()) { return getRepository().readHistory(getFileData().getName(), getFileData().getVersion()).getStream(); } else { return getRepository().read(getFileData().getName()).getStream(); } } catch (IOException ex) { throw new ProjectException(ex.getMessage(), ex); } }
@Override public FileData rename(String srcName, FileData destData) throws IOException { copy(srcName, destData); FileData srcData = new FileData(); srcData.setName(srcName); srcData.setVersion(null); srcData.setAuthor(destData.getAuthor()); srcData.setComment(destData.getComment()); deleteHistory(srcData); onModified(); return check(destData.getName()); }
public void erase(CommonUser user) throws ProjectException { FileData fileData = getFileData(); FileData data = new FileData(); data.setName(fileData.getName()); data.setVersion(null); data.setAuthor(user.getUserName()); data.setComment(Comments.eraseProject(getName())); if (!getRepository().deleteHistory(data)) { throw new ProjectException("Can't erase project because it is absent or can't be deleted"); } }