Example usage for org.apache.commons.vfs2 FileType FOLDER

List of usage examples for org.apache.commons.vfs2 FileType FOLDER

Introduction

In this page you can find the example usage for org.apache.commons.vfs2 FileType FOLDER.

Prototype

FileType FOLDER

To view the source code for org.apache.commons.vfs2 FileType FOLDER.

Click Source Link

Document

A folder.

Usage

From source file:org.pentaho.metaverse.impl.VfsLineageCollector.java

@Override
public List<String> listArtifactsForFile(String pathToArtifact, String startingDate, String endingDate)
        throws IllegalArgumentException {
    List<String> paths = new ArrayList<>();

    try {/* w w  w.j  a v  a  2 s .c o  m*/
        FileSystemOptions opts = new FileSystemOptions();
        FileObject lineageRootFolder = KettleVFS.getFileObject(getOutputFolder(), opts);

        FileSelector dateRangeFilter = new VfsDateRangeFilter(format, startingDate, endingDate);
        FileSelector depthFilter = new FileDepthSelector(1, 256);

        if (lineageRootFolder.exists() && lineageRootFolder.getType() == FileType.FOLDER) {

            // get all of the date folders of lineage we have
            FileObject[] dayFolders = lineageRootFolder.findFiles(dateRangeFilter);
            for (FileObject dayFolder : dayFolders) {
                FileObject[] listThisFolder = dayFolder.findFiles(depthFilter);
                for (FileObject currentFile : listThisFolder) {
                    FileObject requested = currentFile.resolveFile(pathToArtifact);
                    if (requested.exists() && requested.getType() == FileType.FOLDER) {
                        FileObject[] requestedChildren = requested.getChildren();
                        for (FileObject requestedChild : requestedChildren) {
                            if (requestedChild.getType() == FileType.FILE) {
                                paths.add(requestedChild.getName().getPath());
                            }
                        }
                    }
                }
            }
        }
        return paths;
    } catch (Exception e) {
        throw new IllegalArgumentException(e);
    }
}

From source file:org.pentaho.metaverse.util.VfsDateRangeFilter.java

@Override
public boolean includeFile(FileSelectInfo fileInfo) {
    boolean result = super.includeFile(fileInfo);
    try {// w w  w .j  av  a  2 s  . c o  m
        if (fileInfo.getFile().getType() == FileType.FOLDER) {

            Date folderDate = format.parse(fileInfo.getFile().getName().getBaseName());

            // assume a match on start & end dates
            int startCompare = 0;
            int endCompare = 0;

            // it is a valid date, now, is it greater than or equal to the requested date?
            if (startingDate != null) {
                startCompare = folderDate.compareTo(startingDate);
            }
            if (endingDate != null) {
                endCompare = folderDate.compareTo(endingDate);
            }

            return startCompare >= 0 && endCompare <= 0 && result;
        } else {
            return false;
        }
    } catch (ParseException | FileSystemException e) {
        // folder name is not a valid date string, reject it
        return false;
    }
}

From source file:org.pentaho.metaverse.util.VfsDateRangeFilterTest.java

@Test
public void testAccept_startDateSet() throws Exception {
    filter = new VfsDateRangeFilter(format, start);
    FileSelectInfo fsi = mock(FileSelectInfo.class);
    FileObject fo = mock(FileObject.class);
    FileName fn = mock(FileName.class);
    when(fn.getBaseName()).thenReturn(end);
    when(fo.getType()).thenReturn(FileType.FOLDER);
    when(fo.getName()).thenReturn(fn);//from  ww w.ja  va2s  . c  o  m
    when(fsi.getFile()).thenReturn(fo);
    when(fsi.getDepth()).thenReturn(1);
    assertTrue(filter.includeFile(fsi));
    when(fn.getBaseName()).thenReturn(start);
    assertTrue("Start date is not inclusive", filter.includeFile(fsi));
    when(fn.getBaseName()).thenReturn("20000101");
    assertFalse("Before start date was accepted", filter.includeFile(fsi));
}

From source file:org.pentaho.metaverse.util.VfsDateRangeFilterTest.java

@Test
public void testAccept_startDateSet_endDateSet() throws Exception {
    filter = new VfsDateRangeFilter(format, start, end);
    FileSelectInfo fsi = mock(FileSelectInfo.class);
    FileObject fo = mock(FileObject.class);
    FileName fn = mock(FileName.class);
    when(fn.getBaseName()).thenReturn(end);
    when(fo.getType()).thenReturn(FileType.FOLDER);
    when(fo.getName()).thenReturn(fn);//from  www . ja v a 2  s.co  m
    when(fsi.getFile()).thenReturn(fo);
    when(fsi.getDepth()).thenReturn(1);
    assertTrue("End date is not inclusive", filter.includeFile(fsi));
    when(fn.getBaseName()).thenReturn(start);
    assertTrue("Start date is not inclusive", filter.includeFile(fsi));
    when(fn.getBaseName()).thenReturn(between);
    assertTrue("Between start and end date is not accepted", filter.includeFile(fsi));
    when(fn.getBaseName()).thenReturn("20000101");
    assertFalse("Before start date was accepted", filter.includeFile(fsi));
    when(fn.getBaseName()).thenReturn("21000101");
    assertFalse("After end date was accepted", filter.includeFile(fsi));
}

From source file:org.pentaho.metaverse.util.VfsDateRangeFilterTest.java

@Test
public void testAccept_startDateNull_endDateSet() throws Exception {
    filter = new VfsDateRangeFilter(format, null, end);
    FileSelectInfo fsi = mock(FileSelectInfo.class);
    FileObject fo = mock(FileObject.class);
    FileName fn = mock(FileName.class);
    when(fn.getBaseName()).thenReturn(end);
    when(fo.getType()).thenReturn(FileType.FOLDER);
    when(fo.getName()).thenReturn(fn);//from   w  w  w.ja  v a 2s .  c  o  m
    when(fsi.getFile()).thenReturn(fo);
    when(fsi.getDepth()).thenReturn(1);
    assertTrue("End date is not inclusive", filter.includeFile(fsi));
    when(fn.getBaseName()).thenReturn("20000101");
    assertTrue("Before end date was not accepted", filter.includeFile(fsi));
    when(fn.getBaseName()).thenReturn("21000101");
    assertFalse("After end date was accepted", filter.includeFile(fsi));
}

From source file:org.pentaho.metaverse.util.VfsDateRangeFilterTest.java

@Test
public void testAccept_invalidDateStringFolder() throws Exception {
    filter = new VfsDateRangeFilter(format, start, end);
    filter = new VfsDateRangeFilter(format, null, end);
    FileSelectInfo fsi = mock(FileSelectInfo.class);
    FileObject fo = mock(FileObject.class);
    FileName fn = mock(FileName.class);
    when(fn.getBaseName()).thenReturn("not a date");
    when(fo.getType()).thenReturn(FileType.FOLDER);
    when(fo.getName()).thenReturn(fn);// ww  w  .  j  av a2  s  .c o m
    when(fsi.getFile()).thenReturn(fo);
    when(fsi.getDepth()).thenReturn(1);
    assertFalse("Invalid date was accepted", filter.includeFile(fsi));
}

From source file:org.pentaho.reporting.designer.extensions.pentaho.repository.actions.ValidateLoginTask.java

public boolean validateLoginData() throws FileSystemException {
    if (loginData == null) {
        return true;
    }//from w  w w. ja v  a  2s . com
    final FileObject vfsConnection = PublishUtil.createVFSConnection(VFS.getManager(), loginData);
    try {
        final FileSystem fileSystem = vfsConnection.getFileSystem();
        if (fileSystem instanceof WebSolutionFileSystem) {
            final WebSolutionFileSystem webSolutionFileSystem = (WebSolutionFileSystem) fileSystem;
            final Long l = (Long) webSolutionFileSystem
                    .getAttribute(WebSolutionFileSystem.LAST_REFRESH_TIME_ATTRIBUTE);
            if (l != null) {
                if ((System.currentTimeMillis() - l) > 500) {
                    webSolutionFileSystem.getLocalFileModel().refresh();
                }
            }
            return true;
        }
    } catch (FileSystemException fse) {
        // not all file systems support attributes ..
    } catch (IOException e) {
        return false;
    }
    final FileType type = vfsConnection.getType();
    if (type != FileType.FOLDER) {
        return false;
    }
    return true;
}

From source file:org.pentaho.reporting.designer.extensions.pentaho.repository.dialogs.RepositoryOpenDialog.java

public String performOpen(final AuthenticationData loginData, final String previousSelection)
        throws FileSystemException, UnsupportedEncodingException {
    fileSystemRoot = PublishUtil.createVFSConnection(VFS.getManager(), loginData);
    if (previousSelection == null) {
        setSelectedView(fileSystemRoot);
    } else {/*from w ww .ja v  a2s . c  om*/
        final FileObject view = fileSystemRoot.resolveFile(previousSelection);
        if (view == null) {
            setSelectedView(fileSystemRoot);
        } else {
            if (view.exists() == false) {
                setSelectedView(fileSystemRoot);
            } else if (view.getType() == FileType.FOLDER) {
                setSelectedView(view);
            } else {
                setSelectedView(view.getParent());
            }
        }
    }

    if (StringUtils.isEmpty(fileNameTextField.getText(), true) && previousSelection != null) {
        final String fileName = IOUtils.getInstance().getFileName(previousSelection);
        DebugLog.log("Setting filename to " + fileName);
        fileNameTextField.setText(fileName);
    }

    getConfirmAction().setEnabled(validateInputs(false));
    if (super.performEdit() == false || selectedView == null) {
        return null;
    }

    return getSelectedFile();
}

From source file:org.pentaho.reporting.designer.extensions.pentaho.repository.model.RepositoryTableModel.java

public int getRowCount() {
    if (selectedPath == null) {
        return 0;
    }/*from www .  j  a va  2s  .co m*/

    try {
        if (selectedPath.getType() != FileType.FOLDER) {
            return 0;
        }

        final FileObject[] children = selectedPath.getChildren();
        int count = 0;
        for (int i = 0; i < children.length; i++) {
            final FileObject child = children[i];
            if (isShowHiddenFiles() == false && child.isHidden()) {
                continue;
            }
            if (child.getType() != FileType.FOLDER) {
                if (PublishUtil.acceptFilter(filters, child.getName().getBaseName()) == false) {
                    continue;
                }
            }

            count += 1;
        }
        return count;
    } catch (FileSystemException fse) {
        UncaughtExceptionsModel.getInstance().addException(fse);
        return 0;
    }
}

From source file:org.pentaho.reporting.designer.extensions.pentaho.repository.model.RepositoryTableModel.java

public FileObject getElementForRow(final int row) {
    if (selectedPath == null) {
        return null;
    }/*from   www.j  ava2 s.com*/

    try {
        if (selectedPath.getType() != FileType.FOLDER) {
            return null;
        }

        final FileObject[] children = selectedPath.getChildren();
        int count = 0;
        for (int i = 0; i < children.length; i++) {
            final FileObject child = children[i];
            if (isShowHiddenFiles() == false && child.isHidden()) {
                continue;
            }
            if (child.getType() != FileType.FOLDER) {
                if (PublishUtil.acceptFilter(filters, child.getName().getBaseName()) == false) {
                    continue;
                }
            }

            if (count == row) {
                return child;
            }
            count += 1;
        }
        return null;
    } catch (FileSystemException fse) {
        UncaughtExceptionsModel.getInstance().addException(fse);
        return null;
    }
}