List of usage examples for org.apache.commons.vfs FileObject getType
public FileType getType() throws FileSystemException;
From source file:org.efaps.webdav4vfs.handler.HeadHandler.java
@Override() public void service(final HttpServletRequest _request, final HttpServletResponse _response) throws IOException { FileObject object = VFSBackend.resolveFile(_request.getPathInfo()); if (object.exists()) { if (FileType.FOLDER.equals(object.getType())) { _response.sendError(HttpServletResponse.SC_FORBIDDEN); } else {//ww w . j ava 2 s .c om setHeader(_response, object.getContent()); } } else { _response.sendError(HttpServletResponse.SC_NOT_FOUND); } }
From source file:org.efaps.webdav4vfs.handler.OptionsHandler.java
@Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setHeader("DAV", "1, 2"); String path = request.getPathInfo(); StringBuffer options = new StringBuffer(); FileObject object = VFSBackend.resolveFile(path); if (object.exists()) { options.append("OPTIONS, GET, HEAD, POST, DELETE, TRACE, COPY, MOVE, LOCK, UNLOCK, PROPFIND"); if (FileType.FOLDER.equals(object.getType())) { options.append(", PUT"); }/*from ww w.ja v a2s . co m*/ } else { options.append("OPTIONS, MKCOL, PUT, LOCK"); } response.setHeader("Allow", options.toString()); // see: http://www-128.ibm.com/developerworks/rational/library/2089.html response.setHeader("MS-Author-Via", "DAV"); }
From source file:org.efaps.webdav4vfs.handler.PutHandler.java
@Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { FileObject object = VFSBackend.resolveFile(request.getPathInfo()); try {//w ww . j a va2s . co m if (!LockManager.getInstance().evaluateCondition(object, getIf(request)).result) { response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED); return; } } catch (LockException e) { response.sendError(SC_LOCKED); return; } catch (ParseException e) { response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED); return; } // it is forbidden to write data on a folder if (object.exists() && FileType.FOLDER.equals(object.getType())) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } FileObject parent = object.getParent(); if (!parent.exists()) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } if (!FileType.FOLDER.equals(parent.getType())) { response.sendError(HttpServletResponse.SC_CONFLICT); return; } InputStream is = request.getInputStream(); OutputStream os = object.getContent().getOutputStream(); long bytesCopied = IOUtils.copyLarge(is, os); String contentLengthHeader = request.getHeader("Content-length"); LOG.debug(String.format("sent %d/%s bytes", bytesCopied, contentLengthHeader == null ? "unknown" : contentLengthHeader)); os.flush(); object.close(); response.setStatus(HttpServletResponse.SC_CREATED); }
From source file:org.efaps.webdav4vfs.test.ramvfs.RamFileSystem.java
/** * Import the given file with the name relative to the given root. * * @param _fo file object/*from ww w .ja v a 2 s . com*/ * @param _root root file object * @throws FileSystemException if file object could not be imported */ void toRamFileObject(final FileObject _fo, final FileObject _root) throws FileSystemException { final RamFileObject memFo = (RamFileObject) this .resolveFile(_fo.getName().getPath().substring(_root.getName().getPath().length())); if (_fo.getType().hasChildren()) { // Create Folder memFo.createFolder(); // Import recursively final FileObject[] fos = _fo.getChildren(); for (int i = 0; i < fos.length; i++) { final FileObject child = fos[i]; this.toRamFileObject(child, _root); } } else if (_fo.getType().equals(FileType.FILE)) { // Read bytes try { final InputStream is = _fo.getContent().getInputStream(); try { final OutputStream os = new BufferedOutputStream(memFo.getOutputStream(), 512); int i; while ((i = is.read()) != -1) { os.write(i); } os.flush(); os.close(); } finally { try { is.close(); } catch (final IOException e) { // ignore on close exception } } } catch (final IOException e) { throw new FileSystemException(e.getClass().getName() + " " + e.getMessage()); } } else { throw new FileSystemException("File is not a folder nor a file " + memFo); } }
From source file:org.jahia.services.content.impl.external.vfs.VFSDataSource.java
public List<String> getChildren(String path) { try {/*from w w w . j av a 2s . c om*/ if (!path.endsWith("/" + Constants.JCR_CONTENT)) { FileObject fileObject = getFile(path); if (fileObject.getType() == FileType.FILE) { return Arrays.asList(Constants.JCR_CONTENT); } else if (fileObject.getType() == FileType.FOLDER) { List<String> children = new ArrayList<String>(); for (FileObject object : fileObject.getChildren()) { children.add(object.getName().getBaseName()); } return children; } else { logger.warn("Found non file or folder entry, maybe an alias. VFS file type=" + fileObject.getType()); } } } catch (FileSystemException e) { logger.error("Cannot get node children", e); } return new ArrayList<String>(); }
From source file:org.jahia.services.content.impl.external.vfs.VFSDataSource.java
public String getDataType(FileObject fileObject) throws FileSystemException { return fileObject.getType() == FileType.FILE ? Constants.JAHIANT_FILE : Constants.JAHIANT_FOLDER; }
From source file:org.jboss.dashboard.ui.formatters.FileNavigationFileListFormatter.java
public void service(HttpServletRequest request, HttpServletResponse response) throws FormatterException { try {//from ww w. j ava2s. co m FileObject currentPath = getFileNavigationHandler().getCurrentDir(); if (currentPath != null) { FileObject[] children = currentPath.getChildren(); List sortedChildren = new ArrayList(); for (int i = 0; i < children.length; i++) { FileObject child = children[i]; if (child.getType().equals(FileType.FILE) && child.isReadable() && !child.isHidden()) { if (matchesPattern(child, getFileNavigationHandler().getCurrentFilter())) sortedChildren.add(child); } } sortFiles(sortedChildren); renderFiles(sortedChildren); } } catch (FileSystemException e) { log.error("Error: ", e); } }
From source file:org.jboss.dashboard.ui.formatters.FileNavigationTreeFormatter.java
protected void renderDirectory(FileObject currentDir) throws FileSystemException { String dirName = currentDir.getName().getBaseName(); setAttribute("dirName", StringUtils.defaultIfEmpty(dirName, "/")); setAttribute("path", currentDir.getName().getPath()); FileObject[] children = currentDir.getChildren(); List childDirectories = new ArrayList(); boolean hasChildDirectories = false; if (children != null) for (int i = 0; i < children.length; i++) { FileObject child = children[i]; if (child.getType().equals(FileType.FOLDER) && !child.isHidden() && child.isReadable()) { hasChildDirectories = true; childDirectories.add(child); }//from w w w. jav a 2s . c o m } setAttribute("hasChildrenDirectories", hasChildDirectories); String directoryPath = currentDir.getName().getPath(); boolean isOpen = getFileNavigationHandler().getOpenPaths().contains(directoryPath); setAttribute("isOpen", isOpen); setAttribute("isCurrent", getFileNavigationHandler().getCurrentPath().equals(directoryPath)); renderFragment("outputDirectory"); if (childDirectories.size() > 0) { sortDirectories(childDirectories); if (isOpen) { renderFragment("beforeChildren"); for (int i = 0; i < childDirectories.size(); i++) { FileObject child = (FileObject) childDirectories.get(i); renderDirectory(child); } renderFragment("afterChildren"); } } }
From source file:org.jclouds.vfs.tools.blobstore.BlobStoreShell.java
/** * Does a 'cp' command.//from w w w . ja va 2 s. c o m */ private void cp(final String[] cmd) throws Exception { if (cmd.length < 3) { throw new Exception("USAGE: cp <src> <dest>"); } FileObject src = remoteMgr.resolveFile(remoteCwd, cmd[1]); FileObject dest = remoteMgr.resolveFile(remoteCwd, cmd[2]); if (dest.exists() && dest.getType() == FileType.FOLDER) { dest = dest.resolveFile(src.getName().getBaseName()); } dest.copyFrom(src, Selectors.SELECT_ALL); }
From source file:org.jclouds.vfs.tools.blobstore.BlobStoreShell.java
/** * Does a 'get' command.//from w w w . j a va 2 s . com */ private void get(final String[] cmd) throws Exception { if (cmd.length < 3) { throw new Exception("USAGE: get <src> <dest>"); } FileObject src = remoteMgr.resolveFile(remoteCwd, cmd[1]); FileObject dest = mgr.resolveFile(cwd, cmd[2]); if (dest.exists() && dest.getType() == FileType.FOLDER) { dest = dest.resolveFile(src.getName().getBaseName()); } dest.copyFrom(src, Selectors.SELECT_ALL); }