| From | Sent On | Attachments |
|---|---|---|
| Marco Sambin - NeoLogica | Sep 6, 2007 8:16 am | |
| jai-...@javadesktop.org | Nov 2, 2007 3:19 pm | |
| robert engels | Nov 2, 2007 3:19 pm | |
| jai-...@javadesktop.org | Nov 2, 2007 3:34 pm | |
| robert engels | Nov 2, 2007 3:34 pm | |
| robert engels | Nov 2, 2007 3:39 pm | |
| Bob Deen | Nov 2, 2007 4:01 pm | |
| robert engels | Nov 2, 2007 4:19 pm | |
| Bob Deen | Nov 2, 2007 6:16 pm | |
| robert engels | Nov 3, 2007 12:28 am | |
| Marco Sambin - NeoLogica | Nov 5, 2007 12:39 am | |
| jai-...@javadesktop.org | Nov 5, 2007 5:12 pm | |
| Bob Deen | Nov 5, 2007 6:07 pm | |
| jai-...@javadesktop.org | Nov 6, 2007 5:00 pm | |
| Marco Sambin - NeoLogica | Nov 20, 2007 10:04 am | |
| jai-...@javadesktop.org | Feb 4, 2008 11:47 pm | |
| Marco Sambin - NeoLogica | Feb 5, 2008 12:47 am | |
| Fabrizio Giudici | Feb 6, 2008 12:04 am | |
| Marco Sambin - NeoLogica | Feb 6, 2008 1:01 am | |
| fabr...@tidalwave.it | Feb 6, 2008 3:35 am | |
| Bob Deen | Feb 6, 2008 9:59 am | |
| Brian Burkhalter | Feb 6, 2008 10:07 am | |
| robert engels | Feb 6, 2008 10:10 am | |
| Brian Burkhalter | Feb 6, 2008 10:16 am | |
| robert engels | Feb 6, 2008 10:24 am | |
| Brian Burkhalter | Feb 6, 2008 10:28 am | |
| robert engels | Feb 6, 2008 10:33 am | |
| Brian Burkhalter | Feb 6, 2008 10:50 am | |
| jai-...@javadesktop.org | Mar 10, 2008 6:50 am |
| Subject: | Re: [JAI-IMAGEIO] Mac OS X native version of JIIO | |
|---|---|---|
| From: | Bob Deen (Bob....@jpl.nasa.gov) | |
| Date: | Nov 2, 2007 6:16:48 pm | |
| List: | net.java.dev.jai-imageio.interest | |
I don't think you are correct.
Since the consumer needs to "know" what is in the proprietary metadata in order to "use" it - other than a simple name/value display - unless you possibly make an assumption based upon the tag name and/or value. The proprietary format tags/values are not standardized - just the "standard" metadata is.
Not all formats support all "standard" metadata options, and not all files contain all possible metadata. You would at least need query functions for each item to say "is it available". Maybe even a different query function to ask "is this item supported by the format"... those are not necessarily the same thing.
I would argue that non of the plugins are format neutral - they all only work on the specific formats they are written for. Maybe I am ignorant here?
Sorry I meant to say the plugin *mechanism* is format neutral. Meaning it can handle any kind of format with any arbitrary metadata. Specific plugins are of course format-specific.
If the consumer needs to know the metadata anyway for it to be useful, then the StandardMetadata suffices for the metadata, and the consumer can just as easily use the proprietary interfaces when it wants to use special features of a particular format (it would need special code using XML as well).
We do a fair amount of processing on the XML without specific code to interpret the items (think XSLT here).
The bottom line is, it's a part of a standard that's embedded in the JRE so it's unlikely to change and almost certainly will not go away (for compatibility reasons). Which is why I suggested a wrapper interface... make it easy to use without affecting existing API's. Practically speaking, changing the API would mean that someone would have to write a new interface for each existing plugin... and that's pretty unlikely. That's why I think a wrapper (which can be used with any plugin that supports the generic interface) is the way to go. Maybe not the ideal design, but we don't exactly have a clean slate here.
*If the consumer wants to use it in a generic fashion, then it is just as easy to use reflection to find the interfaces a metadata implements, and then the methods and the values.*
Well we have a different definition of "easy". ;-) The problem with that as a general design philosophy is that it assumes that the interface writer is rigidly following the naming conventions... that can be a fairly dangerous assumption.
The one thing xml affords is that you can have a DTD that lists the accepted values. This can also be handled in a generic interface by using:
interface StandardMetadata { String getCompression(); String[] getCompressionValues(); .. etc.. }
Yep.
-Bob





