Patch: New version of "UTF-16 to 'Win32 locale' conversions" and filenames (replacing convertion tables with Win32 API calls)

Bryce McKinlay bryce@mckinlay.net.nz
Fri Sep 19 05:02:00 GMT 2003


On Friday, Sep 19, 2003, at 01:56 Pacific/Auckland, Mohan Embar wrote:

> This is what I was thinking: have an interface (actually a C++ 
> abstract base
> class) called IJvWin32API and two concrete implementations: JvWin9XAPI 
> and
> JvWinNTAPI. At startup time, the runtime initializes a global 
> IJvWin32API
> pointer with one of the concrete implementations based on the 
> platform. We wouldn't
> put all of the API in here, only the ones with string-related things.
> IJvWin32API would (of course) have a UNICODE interface.
>
> This would introduce one extra level of indirection per API call, but 
> who
> cares. This would also lead to some duplication, but since we're 
> mirroring the
> OS API here, it would only be a couple of lines per method 
> implementation.

Rather than making up a C++ interface, I'd prefer to see wrappers 
around these native conversion routines implemented with a 
gnu.gcj.convert interface - or even better, java.nio.charset. Charset 
conversions need to be done in various places besides java.io.File 
(AWT, for example), and it would be great to have access to them from 
Java code. It also means we won't have to write separate code for POSIX 
and Win32 everywhere to do the character conversions. A different win32 
java.nio.charset provider could be registered at startup depending on 
whether 9x or NT is used, avoiding the extra indirection.

This is the approach I intend to take for the posix File implementation 
when time allows.

Regards

Bryce.




More information about the Java-patches mailing list