package com.idega.util; import java.io.File; /** * maintains the file or folder path, where folder path contains leading separator symbol. default * separator symbol is slash * * @author <a href="mailto:civilis@idega.com">Vytautas Čivilis</a> * @version $Revision: 1.3 $ Last modified: $Date: 2009/04/06 14:47:33 $ by $Author: civilis $ */ public class FilePathBuilder { private StringBuilder path; private String separator = CoreConstants.SLASH; public FilePathBuilder() { path = new StringBuilder(CoreConstants.EMPTY); } public FilePathBuilder(String context) { path = new StringBuilder(CoreConstants.EMPTY); if (!StringUtil.isEmpty(context)) { addFolder(context); } } public FilePathBuilder(String context, String separator) { path = new StringBuilder(CoreConstants.EMPTY); this.separator = separator; if (!StringUtil.isEmpty(context)) { addFolder(context); } } public FilePathBuilder addFolder(String folderName) { if (path.length() != 0 && folderName.startsWith(separator)) { folderName = folderName.substring(1); } path.append(folderName); if (!folderName.endsWith(CoreConstants.SLASH)) path.append(CoreConstants.SLASH); return this; } public FilePathBuilder addFile(String fileName) { path.append(fileName); return this; } /** * doesn't modify the path * * @param fileName * @return adds the file name to the path, but doesn't modify it */ public String getPathWithAddedFile(String fileName) { return path + fileName; } public File getFile() { return new File(path.toString()); } @Override public String toString() { return path.toString(); } }