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