@Override
public void setAttribute( final Path path,
final String attribute,
final Object value,
final LinkOption... options )
throws UnsupportedOperationException, IllegalArgumentException, ClassCastException, IOException, SecurityException {
checkNotNull( "path", path );
checkNotEmpty( "attributes", attribute );
if ( attribute.equals( FileSystemState.FILE_SYSTEM_STATE_ATTR ) ) {
try {
state = FileSystemState.valueOf( value.toString() );
FileSystemState.valueOf( value.toString() );
} catch ( final Exception ex ) {
state = FileSystemState.NORMAL;
}
hadCommitOnBatchState = false;
return;
}
final String[] s = split( attribute );
if ( s[ 0 ].length() == 0 ) {
throw new IllegalArgumentException( attribute );
}
final ExtendedAttributeView view = getFileAttributeView( toPathImpl( path ), s[ 0 ], options );
if ( view == null ) {
throw new UnsupportedOperationException( "View '" + s[ 0 ] + "' not available" );
}
view.setAttribute( s[ 1 ], value );
}