View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  package org.apache.commons.vfs.impl;
    18
    19  import org.apache.commons.vfs.FileName;
    20  import org.apache.commons.vfs.FileObject;
    21  import org.apache.commons.vfs.FileSystemException;
    22  import org.apache.commons.vfs.FileType;
    23  import org.apache.commons.vfs.provider.AbstractVfsContainer;
    24
    25
    26  /***
    27   * A virtual filesystem provider.
    28   *
    29   * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
    30   * @version $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
    31   */
    32  public class VirtualFileProvider
    33      extends AbstractVfsContainer
    34  {
    35      /***
    36       * Creates a virtual file system, with the supplied file as its root.
    37       */
    38      public FileObject createFileSystem(final FileObject rootFile)
    39          throws FileSystemException
    40      {
    41          final FileName rootName =
    42              getContext().getFileSystemManager().resolveName(rootFile.getName(), FileName.ROOT_PATH);
    43          // final FileName rootName =
    44          //    new BasicFileName(rootFile.getName(), FileName.ROOT_PATH);
    45          final VirtualFileSystem fs = new VirtualFileSystem(rootName, rootFile.getFileSystem().getFileSystemOptions());
    46          addComponent(fs);
    47          fs.addJunction(FileName.ROOT_PATH, rootFile);
    48          return fs.getRoot();
    49      }
    50
    51      /***
    52       * Creates an empty virtual file system.
    53       */
    54      public FileObject createFileSystem(final String rootUri) throws FileSystemException
    55      {
    56          final FileName rootName =
    57              new VirtualFileName(rootUri, FileName.ROOT_PATH, FileType.FOLDER);
    58          // final FileName rootName =
    59          //    new BasicFileName(rootUri, FileName.ROOT_PATH);
    60          final VirtualFileSystem fs = new VirtualFileSystem(rootName, null);
    61          addComponent(fs);
    62          return fs.getRoot();
    63      }
    64  }