jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java
changeset 8808 fc799c458da8
parent 8158 77d9c0f1c19f
child 9035 1255eb81cc2f
equal deleted inserted replaced
8807:60202547e389 8808:fc799c458da8
    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))