commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Schaible <joerg.schai...@gmx.de>
Subject Re: [VFS] Generics fixes
Date Tue, 09 Nov 2010 09:28:14 GMT
sebb wrote:

> On 8 November 2010 10:37, Jörg Schaible <joerg.schaible@gmx.de> wrote:
>> Hi Sebb,
>>
>> sebb wrote:
>>
>>> On 8 November 2010 08:49, Jörg Schaible <joerg.schaible@gmx.de> wrote:
>>>> sebb wrote:
>>>>
>>>>> Most of the generics fixes have now been done.
>>>>>
>>>>> There are still a few raw Class references; most of these can be fixed
>>>>> if DefaultFileSystemConfigBuilder.getConfigClass() is changed to
>>>>> return a FileSystem [1]
>>>>>
>>>>> Can anyone else confirm that this is a sensible change?
>>>>>
>>>>> [1] https://issues.apache.org/jira/browse/VFS-334
>>>>
>>>> No. We use an implementation of FileSystemConfigBuilder that does also
>>>> not implement FileSystem to introduce more global configuration
>>>> parameters.
>>>
>>> So? None of the FileSystemConfigBuilder classes currently implement
>>> FileSystem.
>>>
>>>> What you can do is:
>>>>
>>>> protected Class<? extends FileSystemConfigBuilder> getConfigClass();
>>>
>>> No, that won't work, because all the other getConfig() methods return
>>> subclasses of FileSystem.
>>
>> I see.
>>
>>> The only solution then would be to use Class<?> throughout.
>>>
>>> All I'm suggesting is changing the return class from
>>> DefaultFileSystemConfigBuilder.getConfigClass() to (say)
>>> FileSystem.class.
>>>
>>> The FileSystemConfigBuilder subclass getConfig() methods are not there
>>> because they implement the FileSystem interface, they implement the
>>> abstract method in FileSystemComfigBuilder.
>>
>> I had a closer look at it now and it seems that Class<?> is the right
>> solution. Basically the class type is used as a key to the options that
>> apply for the current file system, but the stuff from
>> DefaultFileSystemConfiguBuilder are available as options to all FS (as
>> our implementation of FileSystemConfigBuilder does). It does not
>> necessary have to be a FileSystem implementation, it's just a natural
>> choice for a FS implementation.
> 
> Would there be any harm in using the FS interface class in this case?
> 
> i.e., use the implementation class for all real file systems, and use
> the FileSystem interface for generic options.
> 
> Won't that work just as well?

Works with:

protected Class<? extends FileSystem> getConfigClass();

- Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message