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.protocols.file;
22  
23  import org.millscript.commons.vfs.VFS;
24  import org.millscript.commons.vfs.VFile;
25  import org.millscript.commons.vfs.VFolder;
26  import org.millscript.commons.vfs.VVolume;
27  import org.millscript.commons.vfs.protocols.AbstractURISchemeHandler;
28  
29  import java.io.File;
30  import java.net.URI;
31  
32  /**
33   * This class provides the file URI scheme handler.
34   */
35  public class FileSchemeHandler extends AbstractURISchemeHandler {
36  
37      /**
38       * Constructs a new file scheme handler for the specified VFS.
39       *
40       * @param v the VFS for this handler
41       */
42      public FileSchemeHandler( final VFS v ) {
43          super( v );
44      }
45  
46      /**
47       * @see org.millscript.commons.vfs.protocols.URISchemeHandler#resolveAsFile(java.net.URI)
48       */
49      public VFile resolveAsFile( final URI uri ) {
50          super.validate( uri );
51          // Good - URI is absolute and not opaque
52          final VVolume root = new LocalVolume( this.getParentVFS(), new File( "/") );
53          return root.getRootVFolder().resolveAsFile( uri.getPath() );
54      }
55  
56      /**
57       * @see org.millscript.commons.vfs.protocols.URISchemeHandler#resolveAsFolder(java.net.URI)
58       */
59      public VFolder resolveAsFolder( final URI uri ) {
60          super.validate( uri );
61          // Good - URI is absolute and not opaque
62          final VVolume root = new LocalVolume( this.getParentVFS(), new File( "/") );
63          return root.getRootVFolder().resolveAsFolder( uri.getPath() );
64      }
65  
66      /**
67       * @see org.millscript.commons.vfs.protocols.URISchemeHandler#resolveAsVolume(java.net.URI)
68       */
69      public VVolume resolveAsVolume( final URI uri ) {
70          super.validate( uri );
71          // Good - URI is absolute and not opaque
72          final VVolume root = new LocalVolume( this.getParentVFS(), new File( "/") );
73          return root.getRootVFolder().resolveAsVolume( uri.getPath() );
74      }
75  
76  }