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

Print this page




 132             if (sm != null) {
 133                 file.checkRead();
 134                 sm.checkPermission(new RuntimePermission("accessUserInformation"));
 135             }
 136         }
 137 
 138         final void checkWriteExtended() {
 139             SecurityManager sm = System.getSecurityManager();
 140             if (sm != null) {
 141                 file.checkWrite();
 142                 sm.checkPermission(new RuntimePermission("accessUserInformation"));
 143             }
 144         }
 145 
 146         @Override
 147         public String name() {
 148             return "posix";
 149         }
 150 
 151         @Override
 152         public Object getAttribute(String attribute) throws IOException {
 153             if (attribute.equals(PERMISSIONS_NAME))
 154                 return readAttributes().permissions();
 155             if (attribute.equals(OWNER_NAME))
 156                 return readAttributes().owner();
 157             if (attribute.equals(GROUP_NAME))
 158                 return readAttributes().group();
 159             return super.getAttribute(attribute);
 160         }
 161 
 162         @Override
 163         @SuppressWarnings("unchecked")
 164         public void setAttribute(String attribute, Object value)
 165             throws IOException
 166         {
 167             if (attribute.equals(PERMISSIONS_NAME)) {
 168                 setPermissions((Set<PosixFilePermission>)value);
 169                 return;
 170             }
 171             if (attribute.equals(OWNER_NAME)) {
 172                 setOwner((UserPrincipal)value);
 173                 return;
 174             }
 175             if (attribute.equals(GROUP_NAME)) {
 176                 setGroup((GroupPrincipal)value);
 177                 return;
 178             }
 179             super.setAttribute(attribute, value);
 180         }
 181 
 182         /**
 183          * Invoked by readAttributes or sub-classes to add all matching posix
 184          * attributes to the builder
 185          */
 186         final void addPosixAttributesToBuilder(PosixFileAttributes attrs,
 187                                                AttributesBuilder builder)
 188         {
 189             if (builder.match(PERMISSIONS_NAME))
 190                 builder.add(PERMISSIONS_NAME, attrs.permissions());
 191             if (builder.match(OWNER_NAME))
 192                  builder.add(OWNER_NAME, attrs.owner());
 193             if (builder.match(GROUP_NAME))
 194                 builder.add(GROUP_NAME, attrs.group());
 195         }
 196 
 197         @Override
 198         public Map<String,?> readAttributes(String[] attributes)
 199             throws IOException
 200         {
 201             AttributesBuilder builder = AttributesBuilder.create(attributes);
 202             PosixFileAttributes attrs = readAttributes();
 203             addBasicAttributesToBuilder(attrs, builder);
 204             addPosixAttributesToBuilder(attrs, builder);
 205             return builder.unmodifiableMap();
 206         }
 207 
 208         @Override
 209         public UnixFileAttributes readAttributes() throws IOException {
 210             checkReadExtended();
 211             try {
 212                  return UnixFileAttributes.get(file, followLinks);
 213             } catch (UnixException x) {
 214                 x.rethrowAsIOException(file);
 215                 return null;    // keep compiler happy
 216             }
 217         }
 218 


 291     private static class Unix extends Posix {
 292         private static final String MODE_NAME = "mode";
 293         private static final String INO_NAME = "ino";
 294         private static final String DEV_NAME = "dev";
 295         private static final String RDEV_NAME = "rdev";
 296         private static final String NLINK_NAME = "nlink";
 297         private static final String UID_NAME = "uid";
 298         private static final String GID_NAME = "gid";
 299         private static final String CTIME_NAME = "ctime";
 300 
 301         Unix(UnixPath file, boolean followLinks) {
 302             super(file, followLinks);
 303         }
 304 
 305         @Override
 306         public String name() {
 307             return "unix";
 308         }
 309 
 310         @Override
 311         public Object getAttribute(String attribute) throws IOException {
 312             if (attribute.equals(MODE_NAME))
 313                 return readAttributes().mode();
 314             if (attribute.equals(INO_NAME))
 315                 return readAttributes().ino();
 316             if (attribute.equals(DEV_NAME))
 317                 return readAttributes().dev();
 318             if (attribute.equals(RDEV_NAME))
 319                 return readAttributes().rdev();
 320             if (attribute.equals(NLINK_NAME))
 321                 return readAttributes().nlink();
 322             if (attribute.equals(UID_NAME))
 323                 return readAttributes().uid();
 324             if (attribute.equals(GID_NAME))
 325                 return readAttributes().gid();
 326             if (attribute.equals(CTIME_NAME))
 327                 return readAttributes().ctime();
 328             return super.getAttribute(attribute);
 329         }
 330 
 331         @Override
 332         public void setAttribute(String attribute, Object value)
 333             throws IOException
 334         {
 335             if (attribute.equals(MODE_NAME)) {
 336                 setMode((Integer)value);
 337                 return;
 338             }
 339             if (attribute.equals(UID_NAME)) {
 340                 setOwners((Integer)value, -1);
 341                 return;
 342             }
 343             if (attribute.equals(GID_NAME)) {
 344                 setOwners(-1, (Integer)value);
 345                 return;
 346             }
 347             super.setAttribute(attribute, value);
 348         }
 349 
 350         @Override
 351         public Map<String,?> readAttributes(String[] attributes)
 352             throws IOException
 353         {
 354             AttributesBuilder builder = AttributesBuilder.create(attributes);
 355             UnixFileAttributes attrs = readAttributes();
 356             addBasicAttributesToBuilder(attrs, builder);
 357             addPosixAttributesToBuilder(attrs, builder);
 358             if (builder.match(MODE_NAME))
 359                 builder.add(MODE_NAME, attrs.mode());
 360             if (builder.match(INO_NAME))
 361                 builder.add(INO_NAME, attrs.ino());
 362             if (builder.match(DEV_NAME))
 363                 builder.add(DEV_NAME, attrs.dev());
 364             if (builder.match(RDEV_NAME))
 365                 builder.add(RDEV_NAME, attrs.rdev());
 366             if (builder.match(NLINK_NAME))
 367                 builder.add(NLINK_NAME, attrs.nlink());
 368             if (builder.match(UID_NAME))
 369                 builder.add(UID_NAME, attrs.uid());
 370             if (builder.match(GID_NAME))
 371                 builder.add(GID_NAME, attrs.gid());




 132             if (sm != null) {
 133                 file.checkRead();
 134                 sm.checkPermission(new RuntimePermission("accessUserInformation"));
 135             }
 136         }
 137 
 138         final void checkWriteExtended() {
 139             SecurityManager sm = System.getSecurityManager();
 140             if (sm != null) {
 141                 file.checkWrite();
 142                 sm.checkPermission(new RuntimePermission("accessUserInformation"));
 143             }
 144         }
 145 
 146         @Override
 147         public String name() {
 148             return "posix";
 149         }
 150 
 151         @Override











 152         @SuppressWarnings("unchecked")
 153         public void setAttribute(String attribute, Object value)
 154             throws IOException
 155         {
 156             if (attribute.equals(PERMISSIONS_NAME)) {
 157                 setPermissions((Set<PosixFilePermission>)value);
 158                 return;
 159             }
 160             if (attribute.equals(OWNER_NAME)) {
 161                 setOwner((UserPrincipal)value);
 162                 return;
 163             }
 164             if (attribute.equals(GROUP_NAME)) {
 165                 setGroup((GroupPrincipal)value);
 166                 return;
 167             }
 168             super.setAttribute(attribute, value);
 169         }
 170 
 171         /**
 172          * Invoked by readAttributes or sub-classes to add all matching posix
 173          * attributes to the builder
 174          */
 175         final void addPosixAttributesToBuilder(PosixFileAttributes attrs,
 176                                                AttributesBuilder builder)
 177         {
 178             if (builder.match(PERMISSIONS_NAME))
 179                 builder.add(PERMISSIONS_NAME, attrs.permissions());
 180             if (builder.match(OWNER_NAME))
 181                  builder.add(OWNER_NAME, attrs.owner());
 182             if (builder.match(GROUP_NAME))
 183                 builder.add(GROUP_NAME, attrs.group());
 184         }
 185 
 186         @Override
 187         public Map<String,Object> readAttributes(String[] attributes)
 188             throws IOException
 189         {
 190             AttributesBuilder builder = AttributesBuilder.create(attributes);
 191             PosixFileAttributes attrs = readAttributes();
 192             addBasicAttributesToBuilder(attrs, builder);
 193             addPosixAttributesToBuilder(attrs, builder);
 194             return builder.unmodifiableMap();
 195         }
 196 
 197         @Override
 198         public UnixFileAttributes readAttributes() throws IOException {
 199             checkReadExtended();
 200             try {
 201                  return UnixFileAttributes.get(file, followLinks);
 202             } catch (UnixException x) {
 203                 x.rethrowAsIOException(file);
 204                 return null;    // keep compiler happy
 205             }
 206         }
 207 


 280     private static class Unix extends Posix {
 281         private static final String MODE_NAME = "mode";
 282         private static final String INO_NAME = "ino";
 283         private static final String DEV_NAME = "dev";
 284         private static final String RDEV_NAME = "rdev";
 285         private static final String NLINK_NAME = "nlink";
 286         private static final String UID_NAME = "uid";
 287         private static final String GID_NAME = "gid";
 288         private static final String CTIME_NAME = "ctime";
 289 
 290         Unix(UnixPath file, boolean followLinks) {
 291             super(file, followLinks);
 292         }
 293 
 294         @Override
 295         public String name() {
 296             return "unix";
 297         }
 298 
 299         @Override





















 300         public void setAttribute(String attribute, Object value)
 301             throws IOException
 302         {
 303             if (attribute.equals(MODE_NAME)) {
 304                 setMode((Integer)value);
 305                 return;
 306             }
 307             if (attribute.equals(UID_NAME)) {
 308                 setOwners((Integer)value, -1);
 309                 return;
 310             }
 311             if (attribute.equals(GID_NAME)) {
 312                 setOwners(-1, (Integer)value);
 313                 return;
 314             }
 315             super.setAttribute(attribute, value);
 316         }
 317 
 318         @Override
 319         public Map<String,Object> readAttributes(String[] attributes)
 320             throws IOException
 321         {
 322             AttributesBuilder builder = AttributesBuilder.create(attributes);
 323             UnixFileAttributes attrs = readAttributes();
 324             addBasicAttributesToBuilder(attrs, builder);
 325             addPosixAttributesToBuilder(attrs, builder);
 326             if (builder.match(MODE_NAME))
 327                 builder.add(MODE_NAME, attrs.mode());
 328             if (builder.match(INO_NAME))
 329                 builder.add(INO_NAME, attrs.ino());
 330             if (builder.match(DEV_NAME))
 331                 builder.add(DEV_NAME, attrs.dev());
 332             if (builder.match(RDEV_NAME))
 333                 builder.add(RDEV_NAME, attrs.rdev());
 334             if (builder.match(NLINK_NAME))
 335                 builder.add(NLINK_NAME, attrs.nlink());
 336             if (builder.match(UID_NAME))
 337                 builder.add(UID_NAME, attrs.uid());
 338             if (builder.match(GID_NAME))
 339                 builder.add(GID_NAME, attrs.gid());