commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicholas Allen (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (VFS-443) Need an easy way to convert from a FileObject to a File
Date Tue, 13 Nov 2012 20:00:13 GMT

    [ https://issues.apache.org/jira/browse/VFS-443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13496487#comment-13496487
] 

Nicholas Allen edited comment on VFS-443 at 11/13/12 7:58 PM:
--------------------------------------------------------------

I don't see why the only public methods have to be overrides. Why even expose the LocalFile
class in that case? It can't do anything more than a FileObject can so as a client of the
library I don't need to know about that class at all if I can access all it's functionality
through its base class. It's a common design pattern that a sub-class can extend and add extra
functionality so I don't really see why this should be a problem at all from a design point
of view.
                
      was (Author: nickallen):
    I don't see why the only public methods have to be overrides. Why even expose the LocalFile
class? It can't do anything more than a FileObject can so as a client of the library I don't
need to know about that class at all if I can access all it's functionality through its base
class. It's a common design pattern that a sub-class can extend and add extra functionality
so I don't really see why this should be a problem at all from a design point of view.
                  
> Need an easy way to convert from a FileObject to a File
> -------------------------------------------------------
>
>                 Key: VFS-443
>                 URL: https://issues.apache.org/jira/browse/VFS-443
>             Project: Commons VFS
>          Issue Type: Bug
>    Affects Versions: 2.0
>            Reporter: Nicholas Allen
>             Fix For: 2.1
>
>
> I've seen the reasons why Apache does not want to provide an easy way to convert from
a FileObject to a java.io.File and those reasons make sense - however, I think that some things
are being overlooked and there are still valid reasons for needing to convert from a FileObject
to a File.
> Firstly, I would like to always use Apache VFS for everything I do - even if I know it's
only on the local file system. The reasons for this are:
> 1. it makes the code more flexible (it might start of being local file system and then
as specs change it could become a requirement to work over http or inside zip files for example).

> 2. The API is nicer to use than the java.io.File and it's easier to write cross platform
code using it (file separator is always "/" etc).
> So if I work with Apache VFS for local file system use I would like to be able to get
back to a java.io.File in case I need to interface with same other library. I would like a
method that converted to a File or null if not possible. This would allow me to take an alternate
action (eg copy file to local temp file if it's not already a local file). There's no need
to copy the file if it is already local.
> The simplest fix for this is to just make the getLocalFile() method in LocalFile public.
Once the user knows it's a LocalFile object it makes sense to call this method to obtain the
java.io.File. So I could write a method like this:
> /**
>     * If the supplied {@link FileObject} represents a local file then this returns that,
otherwise
>     * returns null.
>     */
>    public File getLocalFile(final FileObject fileObject)
>    {
>       if (fileObject instanceof LocalFile)
>       {
>          final LocalFile localFile = (LocalFile)fileObject;
>          return localFile.getLocalFile();
>       }
>       return null;
>    }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message