On 17/11/2017 16:53, Xueming Shen wrote:
On 11/17/17, 3:35 AM, Alan Bateman wrote:
:

1. getRealName is very welcome but I think it should be a no-arg method on JarEntry, not JarFile. That would make it easier to use and also avoids the temptation to call JarFile.getRealName with an entry in a different JAR file.


I was considering to put it into JarEntry. The only concern is that all mr jarfile related stuff are in JarFile, it's kinda easy/convenient to refer to the concept "if multi-release is..." in JarFile than JarEntry, especially considering mr jarfile normally should only be interested/ used by limited group of developer, it might be better to simply put it near those mr related methods. But I don't have a strong opinion about it. I can move it into JarEntry, if it's desired.
The existing JarFile methods yield objects or streams of JarEntry. It would be a bit inconsistent to introduce a method that returns an entry name as a String. In the opposite corner, JarEntry defines getName and it shouldn't be a surprise to have it define getRealName too.

The other awkward issue with getRealName(JarEntry) is that it has to deal with the case that someone calls it with a JarEntry from a different JarFile. And like getInputStream(JarEntry), it needs to be concerned with a closed JarFile.

So I think on balance JarEntry::getRealName is better. It does mean that the javadoc needs to reference the MR text in JarFile.

-Alan.

Reply via email to