src/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java

Print this page

        

@@ -23,10 +23,14 @@
  * questions.
  */
 
 package sun.nio.fs;
 
+import java.nio.file.*;
+import java.nio.file.attribute.*;
+import java.io.IOException;
+
 /**
  * Solaris implementation of FileSystemProvider
  */
 
 public class SolarisFileSystemProvider extends UnixFileSystemProvider {

@@ -36,6 +40,43 @@
 
     @Override
     SolarisFileSystem newFileSystem(String dir) {
         return new SolarisFileSystem(this, dir);
     }
+    
+    @Override
+    SolarisFileStore getFileStore(UnixPath path) throws IOException {
+        return new SolarisFileStore(path);
+    }   
+    
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public <V extends FileAttributeView> V getFileAttributeView(Path obj, 
+                                                                Class<V> type, 
+                                                                LinkOption... options)
+    {
+        if (type == AclFileAttributeView.class) {
+            return (V) new SolarisAclFileAttributeView(UnixPath.toUnixPath(obj), 
+                                                       followLinks(options));
+        }
+        if (type == UserDefinedFileAttributeView.class) {
+            return(V) new SolarisUserDefinedFileAttributeView(UnixPath.toUnixPath(obj), 
+                                                              followLinks(options));
+        }
+        return super.getFileAttributeView(obj, type, options);
+    }
+
+    @Override
+    public DynamicFileAttributeView getFileAttributeView(Path obj,
+                                                         String name,
+                                                         LinkOption... options)
+    {
+        if (name.equals("acl"))
+            return new SolarisAclFileAttributeView(UnixPath.toUnixPath(obj), 
+                                                   followLinks(options));
+        if (name.equals("user"))
+            return new SolarisUserDefinedFileAttributeView(UnixPath.toUnixPath(obj), 
+                                                           followLinks(options));
+        return super.getFileAttributeView(obj, name, options);
+    }    
 }