You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ad...@apache.org on 2002/08/21 03:39:48 UTC

cvs commit: jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/url UrlFileObject.java UrlFileProvider.java UrlFileSystem.java

adammurdoch    2002/08/20 18:39:47

  Modified:    vfs/src/java/org/apache/commons/vfs/provider
                        AbstractFileProvider.java
  Added:       vfs/src/java/org/apache/commons/vfs/provider/url
                        UrlFileObject.java UrlFileProvider.java
                        UrlFileSystem.java
  Log:
  Added a file provider that is backed by java.net.URL instances.  Pretty rough at the moment.
  
  Revision  Changes    Path
  1.3       +7 -0      jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/AbstractFileProvider.java
  
  Index: AbstractFileProvider.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/AbstractFileProvider.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractFileProvider.java	20 Aug 2002 06:10:50 -0000	1.2
  +++ AbstractFileProvider.java	21 Aug 2002 01:39:47 -0000	1.3
  @@ -35,4 +35,11 @@
       {
           m_context = context;
       }
  +
  +    /**
  +     * Closes the provider.  This implementation does nothing.
  +     */
  +    public void close()
  +    {
  +    }
   }
  
  
  
  1.1                  jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/url/UrlFileObject.java
  
  Index: UrlFileObject.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included  with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.commons.vfs.provider.url;
  
  import java.io.InputStream;
  import java.net.URL;
  import org.apache.commons.vfs.FileName;
  import org.apache.commons.vfs.FileObject;
  import org.apache.commons.vfs.FileSystemException;
  import org.apache.commons.vfs.FileType;
  import org.apache.commons.vfs.provider.AbstractFileObject;
  
  /**
   * A {@link FileObject} implementation backed by a {@link URL}.
   *
   * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
   * @version $Revision: 1.1 $ $Date: 2002/08/21 01:39:47 $
   */
  class UrlFileObject
      extends AbstractFileObject
      implements FileObject
  {
      private URL url;
  
      public UrlFileObject( UrlFileSystem fs,
                            FileName fileName,
                            URL url )
      {
          super( fileName, fs );
          this.url = url;
      }
  
      /**
       * Determines the type of the file.
       */
      protected FileType doGetType() throws Exception
      {
          // TODO - implement this
          return FileType.FILE;
      }
  
      /**
       * Returns the size of the file content (in bytes).
       */
      protected long doGetContentSize() throws Exception
      {
          return url.openConnection().getContentLength();
      }
  
      /**
       * Lists the children of the file.
       */
      protected String[] doListChildren() throws Exception
      {
          throw new FileSystemException( "Not implemented." );
      }
  
      /**
       * Creates an input stream to read the file content from.
       */
      protected InputStream doGetInputStream() throws Exception
      {
          return url.openStream();
      }
  }
  
  
  
  1.1                  jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/url/UrlFileProvider.java
  
  Index: UrlFileProvider.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included  with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.commons.vfs.provider.url;
  
  import org.apache.commons.vfs.FileObject;
  import org.apache.commons.vfs.FileSystemException;
  import org.apache.commons.vfs.provider.AbstractFileSystemProvider;
  import org.apache.commons.vfs.provider.DefaultFileName;
  import org.apache.commons.vfs.provider.FileSystem;
  import org.apache.commons.vfs.provider.ParsedUri;
  import org.apache.commons.vfs.provider.UriParser;
  
  /**
   * A file provider backed by Java's URL API.
   *
   * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
   * @version $Revision: 1.1 $ $Date: 2002/08/21 01:39:47 $
   */
  public class UrlFileProvider
      extends AbstractFileSystemProvider
  {
      private final UriParser parser = new UriParser();
  
      /**
       * Parses a URI into its components.
       */
      protected ParsedUri parseUri( FileObject baseFile, String uri )
          throws FileSystemException
      {
          return parser.parseUri( uri );
      }
  
      /**
       * Creates the filesystem.
       */
      protected FileSystem createFileSystem( ParsedUri uri )
          throws FileSystemException
      {
          final DefaultFileName rootName = new DefaultFileName( parser, uri.getRootUri(), "/" );
          return new UrlFileSystem( getContext(), rootName );
      }
  }
  
  
  
  1.1                  jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/url/UrlFileSystem.java
  
  Index: UrlFileSystem.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included  with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.commons.vfs.provider.url;
  
  import org.apache.commons.vfs.provider.FileSystem;
  import org.apache.commons.vfs.provider.AbstractFileSystem;
  import org.apache.commons.vfs.provider.FileSystemProviderContext;
  import org.apache.commons.vfs.FileName;
  import org.apache.commons.vfs.FileObject;
  import org.apache.commons.vfs.FileSystemException;
  import java.net.URL;
  import java.net.MalformedURLException;
  
  /**
   * A File system backed by Java's URL API.
   *
   * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
   * @version $Revision: 1.1 $ $Date: 2002/08/21 01:39:47 $
   */
  public class UrlFileSystem
      extends AbstractFileSystem
      implements FileSystem
  {
      public UrlFileSystem( final FileSystemProviderContext context,
                            final FileName rootName )
      {
          super( context, rootName );
      }
  
      /**
       * Creates a file object.
       */
      protected FileObject createFile( final FileName name ) throws FileSystemException
      {
          try
          {
              final URL url = new URL( name.getURI() );
              return new UrlFileObject( this, name, url );
          }
          catch ( MalformedURLException e )
          {
              throw new FileSystemException( e );
          }
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>