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); + } + } }