basedfilesystem.java
来自「jsr170接口的java实现。是个apache的开源项目。」· Java 代码 · 共 216 行
JAVA
216 行
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.jackrabbit.core.fs;import java.io.InputStream;import java.io.OutputStream;/** * A <code>BasedFileSystem</code> represents a 'file system in a file system'. */public class BasedFileSystem implements FileSystem { protected final FileSystem fsBase; protected final String basePath; /** * Creates a new <code>BasedFileSystem</code> * * @param fsBase the <code>FileSystem</code> the new file system should be based on * @param relRootPath the root path relative to <code>fsBase</code>'s root */ public BasedFileSystem(FileSystem fsBase, String relRootPath) { if (fsBase == null) { throw new IllegalArgumentException("invalid file system argument"); } this.fsBase = fsBase; if (relRootPath == null) { throw new IllegalArgumentException("invalid null path argument"); } if (relRootPath.equals(SEPARATOR)) { throw new IllegalArgumentException("invalid path argument"); } if (!relRootPath.startsWith(SEPARATOR)) { relRootPath = SEPARATOR + relRootPath; } if (relRootPath.endsWith(SEPARATOR)) { relRootPath = relRootPath.substring(0, relRootPath.length() - 1); } this.basePath = relRootPath; } protected String buildBasePath(String path) { if (path.startsWith(SEPARATOR)) { if (path.length() == 1) { return basePath; } else { return basePath + path; } } else { return basePath + SEPARATOR + path; } } //-----------------------------------------------------------< FileSystem > /** * {@inheritDoc} */ public void init() throws FileSystemException { // check base path if (!fsBase.isFolder(basePath)) { fsBase.createFolder(basePath); } } /** * {@inheritDoc} */ public void close() throws FileSystemException { // do nothing; base file system should be closed explicitly } /** * {@inheritDoc} */ public void copy(String srcPath, String destPath) throws FileSystemException { fsBase.copy(buildBasePath(srcPath), buildBasePath(destPath)); } /** * {@inheritDoc} */ public void createFolder(String folderPath) throws FileSystemException { fsBase.createFolder(buildBasePath(folderPath)); } /** * {@inheritDoc} */ public void deleteFile(String filePath) throws FileSystemException { fsBase.deleteFile(buildBasePath(filePath)); } /** * {@inheritDoc} */ public void deleteFolder(String folderPath) throws FileSystemException { fsBase.deleteFolder(buildBasePath(folderPath)); } /** * {@inheritDoc} */ public boolean exists(String path) throws FileSystemException { return fsBase.exists(buildBasePath(path)); } /** * {@inheritDoc} */ public InputStream getInputStream(String filePath) throws FileSystemException { return fsBase.getInputStream(buildBasePath(filePath)); } /** * {@inheritDoc} */ public OutputStream getOutputStream(String filePath) throws FileSystemException { return fsBase.getOutputStream(buildBasePath(filePath)); } /** * {@inheritDoc} */ public RandomAccessOutputStream getRandomAccessOutputStream(String filePath) throws FileSystemException { return fsBase.getRandomAccessOutputStream(buildBasePath(filePath)); } /** * {@inheritDoc} */ public boolean hasChildren(String path) throws FileSystemException { return fsBase.hasChildren(buildBasePath(path)); } /** * {@inheritDoc} */ public boolean isFile(String path) throws FileSystemException { return fsBase.isFile(buildBasePath(path)); } /** * {@inheritDoc} */ public boolean isFolder(String path) throws FileSystemException { return fsBase.isFolder(buildBasePath(path)); } /** * {@inheritDoc} */ public long lastModified(String path) throws FileSystemException { return fsBase.lastModified(buildBasePath(path)); } /** * {@inheritDoc} */ public long length(String filePath) throws FileSystemException { return fsBase.length(buildBasePath(filePath)); } /** * {@inheritDoc} */ public void touch(String filePath) throws FileSystemException { fsBase.touch(buildBasePath(filePath)); } /** * {@inheritDoc} */ public String[] list(String folderPath) throws FileSystemException { return fsBase.list(buildBasePath(folderPath)); } /** * {@inheritDoc} */ public String[] listFiles(String folderPath) throws FileSystemException { return fsBase.listFiles(buildBasePath(folderPath)); } /** * {@inheritDoc} */ public String[] listFolders(String folderPath) throws FileSystemException { return fsBase.listFolders(buildBasePath(folderPath)); } /** * {@inheritDoc} */ public void move(String srcPath, String destPath) throws FileSystemException { fsBase.move(buildBasePath(srcPath), buildBasePath(destPath)); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?