Coverage Report - org.webslinger.commons.vfs.local.WebslingerLocalFileProvider
 
Classes in this File Line Coverage Branch Coverage Complexity
WebslingerLocalFileProvider
92%
11/12
100%
1/1
0
 
 1  
 package org.webslinger.commons.vfs.local;
 2  
 
 3  
 import java.io.File;
 4  
 import java.util.Arrays;
 5  
 import java.util.Collection;
 6  
 import java.util.Collections;
 7  
 import java.util.HashSet;
 8  
 
 9  
 import org.apache.commons.vfs.Capability;
 10  
 import org.apache.commons.vfs.FileName;
 11  
 import org.apache.commons.vfs.FileObject;
 12  
 import org.apache.commons.vfs.FileSystem;
 13  
 import org.apache.commons.vfs.FileSystemException;
 14  
 import org.apache.commons.vfs.FileSystemOptions;
 15  
 import org.apache.commons.vfs.provider.AbstractOriginatingFileProvider;
 16  
 import org.apache.commons.vfs.provider.LocalFileProvider;
 17  
 import org.apache.commons.vfs.provider.UriParser;
 18  
 import org.apache.commons.vfs.provider.local.GenericFileNameParser;
 19  
 import org.apache.commons.vfs.provider.local.LocalFileName;
 20  
 import org.apache.commons.vfs.provider.local.LocalFileNameParser;
 21  
 import org.apache.commons.vfs.provider.local.WindowsFileNameParser;
 22  
 import org.apache.commons.vfs.util.Os;
 23  
 
 24  
 public class WebslingerLocalFileProvider extends AbstractOriginatingFileProvider implements LocalFileProvider {
 25  1
     protected static final Collection<Capability> capabilities = Collections.unmodifiableSet(new HashSet<Capability>(
 26  
         Arrays.asList(
 27  
             new Capability[] {
 28  
                 Capability.READ_CONTENT,
 29  
                 Capability.WRITE_CONTENT,
 30  
                 Capability.RANDOM_ACCESS_READ,
 31  
                 Capability.RANDOM_ACCESS_WRITE,
 32  
                 Capability.ATTRIBUTES,
 33  
                 Capability.LAST_MODIFIED,
 34  
                 Capability.GET_LAST_MODIFIED,
 35  
                 Capability.SET_LAST_MODIFIED_FILE,
 36  
                 Capability.SET_LAST_MODIFIED_FOLDER,
 37  
                 Capability.SIGNING,
 38  
                 Capability.CREATE,
 39  
                 Capability.DELETE,
 40  
                 Capability.RENAME,
 41  
                 Capability.GET_TYPE,
 42  
                 Capability.LIST_CHILDREN,
 43  
                 Capability.URI,
 44  
                 Capability.FS_ATTRIBUTES,
 45  
             }
 46  
         )
 47  
     ));
 48  
 
 49  46
     protected final FileSystemOptions defaultOptions = new FileSystemOptions();
 50  
 
 51  46
     public WebslingerLocalFileProvider() {
 52  46
         setFileNameParser(Os.isFamily(Os.OS_FAMILY_WINDOWS) ? new WindowsFileNameParser() : new GenericFileNameParser());
 53  46
     }
 54  
 
 55  
     public Collection getCapabilities() {
 56  0
         return capabilities;
 57  
     }
 58  
 
 59  
     public boolean isAbsoluteLocalName(final String name) {
 60  61
         return ((LocalFileNameParser) getFileNameParser()).isAbsoluteName(name);
 61  
     }
 62  
 
 63  
     public FileObject findLocalFile(String name) throws FileSystemException {
 64  
         //new Exception("findLocalFile{String}(" + name + ")").printStackTrace();
 65  73
         return findFile(parseUri(null, "wsfile:" + name), defaultOptions);
 66  
     }
 67  
 
 68  
     public FileObject findLocalFile(File file) throws FileSystemException {
 69  
         //System.err.println("findLocalFile{File}(" + file + ")");
 70  18
         return findLocalFile(UriParser.encode(file.getAbsolutePath()));
 71  
     }
 72  
 
 73  
     protected FileSystem doCreateFileSystem(FileName name, FileSystemOptions options) throws FileSystemException {
 74  59
         System.err.println("wsfile.doCreateFileSystem(" + name + ", " + options + ")");
 75  59
         LocalFileName rootName = (LocalFileName) name;
 76  59
         return new LocalFileSystem(rootName, options, new File(rootName.getRootFile()));
 77  
     }
 78  
 }