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 } |