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

Print this page

        

*** 121,130 **** --- 121,134 ---- private static class Posix extends Basic implements PosixFileAttributeView { private static final String PERMISSIONS_NAME = "permissions"; private static final String OWNER_NAME = "owner"; private static final String GROUP_NAME = "group"; + // the names of the posix attributes (incudes basic) + static final Set<String> posixAttributeNames = + Util.newSet(basicAttributeNames, PERMISSIONS_NAME, OWNER_NAME, GROUP_NAME); + Posix(UnixPath file, boolean followLinks) { super(file, followLinks); } final void checkReadExtended() {
*** 170,198 **** /** * Invoked by readAttributes or sub-classes to add all matching posix * attributes to the builder */ ! final void addPosixAttributesToBuilder(PosixFileAttributes attrs, AttributesBuilder builder) { if (builder.match(PERMISSIONS_NAME)) builder.add(PERMISSIONS_NAME, attrs.permissions()); if (builder.match(OWNER_NAME)) builder.add(OWNER_NAME, attrs.owner()); if (builder.match(GROUP_NAME)) builder.add(GROUP_NAME, attrs.group()); } @Override ! public Map<String,Object> readAttributes(String[] attributes) throws IOException { ! AttributesBuilder builder = AttributesBuilder.create(attributes); PosixFileAttributes attrs = readAttributes(); ! addBasicAttributesToBuilder(attrs, builder); ! addPosixAttributesToBuilder(attrs, builder); return builder.unmodifiableMap(); } @Override public UnixFileAttributes readAttributes() throws IOException { --- 174,203 ---- /** * Invoked by readAttributes or sub-classes to add all matching posix * attributes to the builder */ ! final void addRequestedPosixAttributes(PosixFileAttributes attrs, AttributesBuilder builder) { + addRequestedBasicAttributes(attrs, builder); if (builder.match(PERMISSIONS_NAME)) builder.add(PERMISSIONS_NAME, attrs.permissions()); if (builder.match(OWNER_NAME)) builder.add(OWNER_NAME, attrs.owner()); if (builder.match(GROUP_NAME)) builder.add(GROUP_NAME, attrs.group()); } @Override ! public Map<String,Object> readAttributes(String[] requested) throws IOException { ! AttributesBuilder builder = ! AttributesBuilder.create(posixAttributeNames, requested); PosixFileAttributes attrs = readAttributes(); ! addRequestedPosixAttributes(attrs, builder); return builder.unmodifiableMap(); } @Override public UnixFileAttributes readAttributes() throws IOException {
*** 285,294 **** --- 290,305 ---- private static final String NLINK_NAME = "nlink"; private static final String UID_NAME = "uid"; private static final String GID_NAME = "gid"; private static final String CTIME_NAME = "ctime"; + // the names of the unix attributes (including posix) + static final Set<String> unixAttributeNames = + Util.newSet(posixAttributeNames, + MODE_NAME, INO_NAME, DEV_NAME, RDEV_NAME, + NLINK_NAME, UID_NAME, GID_NAME, CTIME_NAME); + Unix(UnixPath file, boolean followLinks) { super(file, followLinks); } @Override
*** 314,330 **** } super.setAttribute(attribute, value); } @Override ! public Map<String,Object> readAttributes(String[] attributes) throws IOException { ! AttributesBuilder builder = AttributesBuilder.create(attributes); UnixFileAttributes attrs = readAttributes(); ! addBasicAttributesToBuilder(attrs, builder); ! addPosixAttributesToBuilder(attrs, builder); if (builder.match(MODE_NAME)) builder.add(MODE_NAME, attrs.mode()); if (builder.match(INO_NAME)) builder.add(INO_NAME, attrs.ino()); if (builder.match(DEV_NAME)) --- 325,341 ---- } super.setAttribute(attribute, value); } @Override ! public Map<String,Object> readAttributes(String[] requested) throws IOException { ! AttributesBuilder builder = ! AttributesBuilder.create(unixAttributeNames, requested); UnixFileAttributes attrs = readAttributes(); ! addRequestedPosixAttributes(attrs, builder); if (builder.match(MODE_NAME)) builder.add(MODE_NAME, attrs.mode()); if (builder.match(INO_NAME)) builder.add(INO_NAME, attrs.ino()); if (builder.match(DEV_NAME))