jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystemProvider.java
changeset 8158 77d9c0f1c19f
parent 5506 202f599c92aa
child 9035 1255eb81cc2f
child 9025 a72fc1fc4b71
equal deleted inserted replaced
7988:d31b7cc371ef 8158:77d9c0f1c19f
    23  * questions.
    23  * questions.
    24  */
    24  */
    25 
    25 
    26 package sun.nio.fs;
    26 package sun.nio.fs;
    27 
    27 
       
    28 import java.nio.file.*;
       
    29 import java.nio.file.attribute.*;
       
    30 import java.io.IOException;
       
    31 
    28 /**
    32 /**
    29  * Linux implementation of FileSystemProvider
    33  * Linux implementation of FileSystemProvider
    30  */
    34  */
    31 
    35 
    32 public class LinuxFileSystemProvider extends UnixFileSystemProvider {
    36 public class LinuxFileSystemProvider extends UnixFileSystemProvider {
    36 
    40 
    37     @Override
    41     @Override
    38     LinuxFileSystem newFileSystem(String dir) {
    42     LinuxFileSystem newFileSystem(String dir) {
    39         return new LinuxFileSystem(this, dir);
    43         return new LinuxFileSystem(this, dir);
    40     }
    44     }
       
    45 
       
    46     @Override
       
    47     LinuxFileStore getFileStore(UnixPath path) throws IOException {
       
    48         return new LinuxFileStore(path);
       
    49     }
       
    50 
       
    51     @Override
       
    52     @SuppressWarnings("unchecked")
       
    53     public <V extends FileAttributeView> V getFileAttributeView(Path obj,
       
    54                                                                 Class<V> type,
       
    55                                                                 LinkOption... options)
       
    56     {
       
    57         if (type == DosFileAttributeView.class) {
       
    58             return (V) new LinuxDosFileAttributeView(UnixPath.toUnixPath(obj),
       
    59                                                      followLinks(options));
       
    60         }
       
    61         if (type == UserDefinedFileAttributeView.class) {
       
    62             return (V) new LinuxUserDefinedFileAttributeView(UnixPath.toUnixPath(obj),
       
    63                                                              followLinks(options));
       
    64         }
       
    65         return super.getFileAttributeView(obj, type, options);
       
    66     }
       
    67 
       
    68     @Override
       
    69     public DynamicFileAttributeView getFileAttributeView(Path obj,
       
    70                                                          String name,
       
    71                                                          LinkOption... options)
       
    72     {
       
    73         if (name.equals("dos")) {
       
    74             return new LinuxDosFileAttributeView(UnixPath.toUnixPath(obj),
       
    75                                                  followLinks(options));
       
    76         }
       
    77         if (name.equals("user")) {
       
    78             return new LinuxUserDefinedFileAttributeView(UnixPath.toUnixPath(obj),
       
    79                                                          followLinks(options));
       
    80         }
       
    81         return super.getFileAttributeView(obj, name, options);
       
    82     }
       
    83 
       
    84     @Override
       
    85     @SuppressWarnings("unchecked")
       
    86     public <A extends BasicFileAttributes> A readAttributes(Path file,
       
    87                                                             Class<A> type,
       
    88                                                             LinkOption... options)
       
    89         throws IOException
       
    90     {
       
    91         if (type == DosFileAttributes.class) {
       
    92             DosFileAttributeView view =
       
    93                 getFileAttributeView(file, DosFileAttributeView.class, options);
       
    94             return (A) view.readAttributes();
       
    95         } else {
       
    96             return super.readAttributes(file, type, options);
       
    97         }
       
    98     }
    41 }
    99 }