Ticket #402 (closed defect: fixed)

Opened 11 years ago

Last modified 11 years ago

Split original metadata fields into series-specific tables

Reported by: curtis Owned by: melissa
Priority: major Milestone: bio-formats-4.1
Component: bio-formats Severity: serious
Keywords: Cc: brookings@…
Blocked By: Blocking:

Description (last modified by curtis) (diff)

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:

  1. 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.
  1. Continue saving non-series-specific metadata to the global metadata table. Rename getMetadata() to getGlobalMetadata().
  1. Add getSeriesMetadata() method to return the series-specific tables from CoreMetadata according to the current series set with setSeries(int).
  1. 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:1 Changed 11 years ago by curtis

  • Description modified (diff)

comment:2 Changed 11 years ago 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.
Note: See TracTickets for help on using tickets.