DirectoriesOnlyFilter.java

00001 package edu.stanford.hci.r3.util.files.filters;
00002 
00003 import java.io.File;
00004 import java.io.FileFilter;
00005 
00006 import edu.stanford.hci.r3.util.files.FileUtils;
00007 import edu.stanford.hci.r3.util.files.Visibility;
00008 
00019 public class DirectoriesOnlyFilter implements FileFilter {
00020 
00024         private boolean useVisibility = true;
00025 
00029         private Visibility visibility = Visibility.VISIBLE;
00030 
00036         public DirectoriesOnlyFilter(boolean useVisibilityFlag) {
00037                 useVisibility = useVisibilityFlag;
00038         }
00039 
00045         public DirectoriesOnlyFilter(Visibility v) {
00046                 visibility = v;
00047         }
00048 
00054         public boolean accept(File f) {
00055                 if (!f.isDirectory()) {
00056                         // this is a file; we keep only directories
00057                         return false;
00058                 }
00059 
00060                 if (!useVisibility) {
00061                         // we don't check the flag
00062                         return true;
00063                 }
00064 
00065                 // we check the visibility flag here
00066                 // only true if visibility matches the specification
00067                 // invisible && hidden works
00068                 // visible && !hidden works
00069                 // both && (hidden || !hidden) works
00070                 if (visibility == Visibility.BOTH) {
00071                         return true;
00072                 }
00073                 return (visibility == Visibility.INVISIBLE) == FileUtils.isHiddenOrDotFile(f);
00074         }
00075 }

Generated on Sat Apr 14 18:21:34 2007 for R3 Paper Toolkit by  doxygen 1.4.7