src/java.base/aix/classes/sun/nio/fs/AixFileSystemProvider.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright 2013 SAP AG. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
--- 1,7 ----
/*
! * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright 2013 SAP AG. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
*** 22,34 ****
--- 22,45 ----
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
+ /*
+ * Portions Copyright (c) 2014 IBM Corporation
+ */
+
package sun.nio.fs;
import java.io.IOException;
+ import java.nio.file.LinkOption;
+ import java.nio.file.Path;
+ import java.nio.file.attribute.BasicFileAttributes;
+ import java.nio.file.attribute.DosFileAttributeView;
+ import java.nio.file.attribute.DosFileAttributes;
+ import java.nio.file.attribute.FileAttributeView;
+ import java.nio.file.attribute.UserDefinedFileAttributeView;
/**
* AIX implementation of FileSystemProvider
*/
*** 47,52 ****
--- 58,112 ----
*/
@Override
AixFileStore getFileStore(UnixPath path) throws IOException {
return new AixFileStore(path);
}
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public <V extends FileAttributeView> V getFileAttributeView(Path obj,
+ Class<V> type,
+ LinkOption... options)
+ {
+ if (type == DosFileAttributeView.class) {
+ return (V) new AixDosFileAttributeView(UnixPath.toUnixPath(obj),
+ Util.followLinks(options));
+ }
+ if (type == UserDefinedFileAttributeView.class) {
+ return (V) new AixUserDefinedFileAttributeView(UnixPath.toUnixPath(obj),
+ Util.followLinks(options));
+ }
+ return super.getFileAttributeView(obj, type, options);
+ }
+
+ @Override
+ public DynamicFileAttributeView getFileAttributeView(Path obj,
+ String name,
+ LinkOption... options)
+ {
+ if (name.equals("dos")) {
+ return new AixDosFileAttributeView(UnixPath.toUnixPath(obj),
+ Util.followLinks(options));
+ }
+ if (name.equals("user")) {
+ return new AixUserDefinedFileAttributeView(UnixPath.toUnixPath(obj),
+ Util.followLinks(options));
+ }
+ return super.getFileAttributeView(obj, name, options);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public <A extends BasicFileAttributes> A readAttributes(Path file,
+ Class<A> type,
+ LinkOption... options)
+ throws IOException
+ {
+ if (type == DosFileAttributes.class) {
+ DosFileAttributeView view =
+ getFileAttributeView(file, DosFileAttributeView.class, options);
+ return (A) view.readAttributes();
+ } else {
+ return super.readAttributes(file, type, options);
+ }
+ }
}