View Javadoc

1   ////////////////////////////////////////////////////////////////////////////////
2   // MillScript: an Open Spice interpreter and batch website creation tool
3   // Copyright (C) 2005 Kevin Rogers
4   //
5   // This file is part of MillScript.
6   //
7   // MillScript is free software; you can redistribute it and/or modify it under
8   // the terms of the GNU General Public License as published by the Free
9   // Software Foundation; either version 2 of the License, or (at your option)
10  // any later version.
11  //
12  // MillScript is distributed in the hope that it will be useful, but WITHOUT
13  // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  // more details.
16  //
17  // You should have received a copy of the GNU General Public License along with
18  // MillScript; if not, write to the Free Software Foundation, Inc., 59 Temple
19  // Place, Suite 330, Boston, MA  02111-1307  USA
20  ////////////////////////////////////////////////////////////////////////////////
21  package org.millscript.commons.vfs;
22  
23  import java.net.URI;
24  
25  /**
26   * This interface describes the root of a virtual filesystem. From the root you
27   * can get the root folder.
28   */
29  public interface VVolume {
30  
31      /**
32       * Appends the base URI of this volume to the specified string buffer. The
33       * base URI is considered to be the scheme, host and port of this volumes
34       * URI and possibly a few segments of a path.
35       *
36       * @param buffer    the string buffer to append the base URI to
37       * @return  the specified StringBuffer with this volumes base URI appended
38       * to it
39       */
40      StringBuffer appendBaseURI( final StringBuffer buffer );
41  
42      /**
43       * Returns the parent VFS, that which created this URI scheme handler. The
44       * parent VFS is maintained through to each volume, so that we can use it
45       * for configuration.
46       *
47       * @return
48       */
49      VFS getParentVFS();
50  
51      /**
52       * Returns the root VFolder for this virtual volume.
53       *
54       * @return  the VFolder for the root of this volume
55       */
56      VFolder getRootVFolder();
57  
58      /**
59       * Returns the URI for the root of this virtual filesystem volume.
60       *
61       * @return  a URI for this volume
62       */
63      URI getURI();
64  
65  }