Example usage for org.apache.commons.vfs FileObject getType

List of usage examples for org.apache.commons.vfs FileObject getType

Introduction

In this page you can find the example usage for org.apache.commons.vfs FileObject getType.

Prototype

public FileType getType() throws FileSystemException;

Source Link

Document

Returns this file's type.

Usage

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);
}