org.gridlab.gat.io.attributes
Interface BasicFileAttributeView

All Superinterfaces:
AttributeView, FileAttributeView
All Known Subinterfaces:
PosixFileAttributeView

public interface BasicFileAttributeView
extends FileAttributeView

A file attribute view that provides a view of a basic set of file attributes common to many file systems. The basic set of file attributes consist of mandatory and optional file attributes as defined by the BasicFileAttributes interface.

The file attributes are retrieved from the file system as a bulk operation by invoking the readAttributes method. This class also defines the setTimes method to update the file's time attributes.

Where dynamic access to file attributes is required, the attributes supported by this attribute view have the following names and types:

Name Type
"lastModifiedTime" Long
"lastAccessTime" Long
"creationTime" Long
"resolution" TimeUnit
"size" Long
"isRegularFile" Boolean
"isDirectory" Boolean
"isSymbolicLink" Boolean
"isOther" Boolean
"linkCount" Integer
"fileKey" Object

The getAttribute or readAttributes(String,String[]) methods may be used to read any of these attributes as if by invoking the readAttributes() method.

The setAttribute method may be used to update the file's last modified time, last access time or create time attributes as if by invoking the setTimes method. In that case, the time value is interpreted in milliseconds and converted to the precision supported by the file system.

Since:
1.7

Method Summary
 String name()
          Returns the name of the attribute view.
 BasicFileAttributes readAttributes()
          Reads the basic file attributes as a bulk operation.
 void setTimes(Long lastModifiedTime, Long lastAccessTime, Long createTime, TimeUnit unit)
          Updates any or all of the file's last modified time, last access time, and create time attributes.
 
Methods inherited from interface org.gridlab.gat.io.attributes.AttributeView
getAttribute, readAttributes, setAttribute
 

Method Detail

name

String name()
Returns the name of the attribute view. Attribute views of this type have the name "basic".

Specified by:
name in interface AttributeView

readAttributes

BasicFileAttributes readAttributes()
                                   throws IOException
Reads the basic file attributes as a bulk operation.

It is implementation specific if all file attributes are read as an atomic operation with respect to other file system operations.

Returns:
the file attributes
Throws:
IOException - if an I/O error occurs
SecurityException - In the case of the default provider, a security manager is installed, its checkRead method is invoked to check read access to the file

setTimes

void setTimes(Long lastModifiedTime,
              Long lastAccessTime,
              Long createTime,
              TimeUnit unit)
              throws IOException
Updates any or all of the file's last modified time, last access time, and create time attributes.

This method updates the file's timestamp attributes. The values are measured since the epoch (00:00:00 GMT, January 1, 1970) and converted to the precision supported by the file system. Converting from finer to coarser granularities result in precision loss. If a value is larger than the maximum supported by the file system then the corresponding timestamp is set to its maximum value.

If any of the lastModifiedTime, lastAccessTime, or createTime parameters has the value null then the corresponding timestamp is not changed. An implementation may require to read the existing values of the file attributes when only some, but not all, of the timestamp attributes are updated. Consequently, this method may not be an atomic operation with respect to other file system operations. If all of the lastModifiedTime, lastAccessTime and createTime parameters are null then this method has no effect.

Parameters:
lastModifiedTime - the new last modified time, or -1L to update it to the current time, or null to not change the attribute
lastAccessTime - the last access time, or -1L to update it to the current time, or null to not change the attribute.
createTime - the file's create time, or -1L to update it to the current time, or null to not change the attribute
unit - a TimeUnit determining how to interpret the time values
Throws:
IllegalArgumentException - if any of the parameters is a negative value other than -1L
IOException - if an I/O error occurs
SecurityException - In the case of the default provider, a security manager is installed, its checkWrite method is invoked to check write access to the file