Ticket #402 (closed defect: fixed)
Opened 2009-06-08T13:21:44-05:00
Last modified 2009-07-06T11:39:38-05:00
Split original metadata fields into series-specific tables
Reported by: | curtis | Owned by: | melissa |
---|---|---|---|
Priority: | major | Milestone: |
|
Component: | bio-formats | Severity: | serious |
Keywords: | Cc: | brookings@… | |
Blocked By: | Blocking: |
Description (last modified by curtis)
Currently, series-specific metadata fields in the original metadata table are prefixed with the series name. This behavior makes it difficult to determine which metadata fields belong to which series number without attaching an IMetadata object to extract the Image Name strings and manually matching against the keys.
Solution:
- Rather than prefixing series-specific metadata fields and saving into the global metadata table, instead save them to the already existing series-specific metadata tables in the CoreMetadata objects.
- Continue saving non-series-specific metadata to the global metadata table. Rename getMetadata() to getGlobalMetadata().
- Add getSeriesMetadata() method to return the series-specific tables from CoreMetadata according to the current series set with setSeries(int).
- Reintroduce getMetadata() method as a deprecated method, with a new implementation: when called, union together all information from all metadata tables on the fly, adding the series prefixes as before, so the resultant table is as close as possible to the current implementation. The step will help avoid breakage of existing code. (If a series name exists, use that for the prefix. If null or blank, use "series n" where n is the series number.)
Change History
comment:2 Changed 2009-07-06T11:39:38-05:00 by melissa
- Status changed from new to closed
- Resolution set to fixed
(In [5213]) * Series-specific metadata is now placed in the 'seriesMetadata' hashtable in the appropriate CoreMetadata object. Closes #402.
- IFormatReader has two new methods - getGlobalMetadata(), which returns the global metadata hashtable; and getSeriesMetadata(), which returns metadata for the current series.