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