|
Java example source code file (AbstractFileSystemProvider.java)
The AbstractFileSystemProvider.java Java example source code/* * Copyright (c) 2011, Oracle and/or its affiliates. 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 * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * 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. */ package sun.nio.fs; import java.nio.file.*; import java.nio.file.spi.FileSystemProvider; import java.io.IOException; import java.util.Map; /** * Base implementation class of FileSystemProvider */ abstract class AbstractFileSystemProvider extends FileSystemProvider { protected AbstractFileSystemProvider() { } /** * Splits the given attribute name into the name of an attribute view and * the attribute. If the attribute view is not identified then it assumed * to be "basic". */ private static String[] split(String attribute) { String[] s = new String[2]; int pos = attribute.indexOf(':'); if (pos == -1) { s[0] = "basic"; s[1] = attribute; } else { s[0] = attribute.substring(0, pos++); s[1] = (pos == attribute.length()) ? "" : attribute.substring(pos); } return s; } /** * Gets a DynamicFileAttributeView by name. Returns {@code null} if the * view is not available. */ abstract DynamicFileAttributeView getFileAttributeView(Path file, String name, LinkOption... options); @Override public final void setAttribute(Path file, String attribute, Object value, LinkOption... options) throws IOException { String[] s = split(attribute); if (s[0].length() == 0) throw new IllegalArgumentException(attribute); DynamicFileAttributeView view = getFileAttributeView(file, s[0], options); if (view == null) throw new UnsupportedOperationException("View '" + s[0] + "' not available"); view.setAttribute(s[1], value); } @Override public final Map<String,Object> readAttributes(Path file, String attributes, LinkOption... options) throws IOException { String[] s = split(attributes); if (s[0].length() == 0) throw new IllegalArgumentException(attributes); DynamicFileAttributeView view = getFileAttributeView(file, s[0], options); if (view == null) throw new UnsupportedOperationException("View '" + s[0] + "' not available"); return view.readAttributes(s[1].split(",")); } /** * Deletes a file. The {@code failIfNotExists} parameters determines if an * {@code IOException} is thrown when the file does not exist. */ abstract boolean implDelete(Path file, boolean failIfNotExists) throws IOException; @Override public final void delete(Path file) throws IOException { implDelete(file, true); } @Override public final boolean deleteIfExists(Path file) throws IOException { return implDelete(file, false); } } Other Java examples (source code examples)Here is a short list of links related to this Java AbstractFileSystemProvider.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.