equal
deleted
inserted
replaced
25 |
25 |
26 package sun.nio.fs; |
26 package sun.nio.fs; |
27 |
27 |
28 import java.nio.file.attribute.*; |
28 import java.nio.file.attribute.*; |
29 import java.util.Map; |
29 import java.util.Map; |
|
30 import java.util.Set; |
30 import java.io.IOException; |
31 import java.io.IOException; |
31 import sun.misc.Unsafe; |
32 import sun.misc.Unsafe; |
32 |
33 |
33 import static sun.nio.fs.UnixNativeDispatcher.*; |
34 import static sun.nio.fs.UnixNativeDispatcher.*; |
34 import static sun.nio.fs.UnixConstants.*; |
35 import static sun.nio.fs.UnixConstants.*; |
55 private static final int DOS_XATTR_READONLY = 0x01; |
56 private static final int DOS_XATTR_READONLY = 0x01; |
56 private static final int DOS_XATTR_HIDDEN = 0x02; |
57 private static final int DOS_XATTR_HIDDEN = 0x02; |
57 private static final int DOS_XATTR_SYSTEM = 0x04; |
58 private static final int DOS_XATTR_SYSTEM = 0x04; |
58 private static final int DOS_XATTR_ARCHIVE = 0x20; |
59 private static final int DOS_XATTR_ARCHIVE = 0x20; |
59 |
60 |
|
61 // the names of the DOS attributes (includes basic) |
|
62 private static final Set<String> dosAttributeNames = |
|
63 Util.newSet(basicAttributeNames, READONLY_NAME, ARCHIVE_NAME, SYSTEM_NAME, HIDDEN_NAME); |
|
64 |
60 LinuxDosFileAttributeView(UnixPath file, boolean followLinks) { |
65 LinuxDosFileAttributeView(UnixPath file, boolean followLinks) { |
61 super(file, followLinks); |
66 super(file, followLinks); |
62 } |
67 } |
63 |
68 |
64 @Override |
69 @Override |
91 |
96 |
92 @Override |
97 @Override |
93 public Map<String,Object> readAttributes(String[] attributes) |
98 public Map<String,Object> readAttributes(String[] attributes) |
94 throws IOException |
99 throws IOException |
95 { |
100 { |
96 AttributesBuilder builder = AttributesBuilder.create(attributes); |
101 AttributesBuilder builder = |
|
102 AttributesBuilder.create(dosAttributeNames, attributes); |
97 DosFileAttributes attrs = readAttributes(); |
103 DosFileAttributes attrs = readAttributes(); |
98 addBasicAttributesToBuilder(attrs, builder); |
104 addRequestedBasicAttributes(attrs, builder); |
99 if (builder.match(READONLY_NAME)) |
105 if (builder.match(READONLY_NAME)) |
100 builder.add(READONLY_NAME, attrs.isReadOnly()); |
106 builder.add(READONLY_NAME, attrs.isReadOnly()); |
101 if (builder.match(ARCHIVE_NAME)) |
107 if (builder.match(ARCHIVE_NAME)) |
102 builder.add(ARCHIVE_NAME, attrs.isArchive()); |
108 builder.add(ARCHIVE_NAME, attrs.isArchive()); |
103 if (builder.match(SYSTEM_NAME)) |
109 if (builder.match(SYSTEM_NAME)) |