loci.formats

## Class MetadataTools

- java.lang.Object
- - loci.formats.MetadataTools

-     public final class MetadataTools
      extends java.lang.Object

  A utility class for working with metadata objects, including `MetadataStore`, `MetadataRetrieve`, and OME-XML strings. Most of the methods require the optional `loci.formats.ome` package, and optional ome-xml.jar library, to be present at runtime.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static boolean` | `defaultDateEnabled`
    `private static org.slf4j.Logger` | `LOGGER`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `private` | `MetadataTools()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.lang.String` | `createLSID(java.lang.String type, int... indices)` Constructs an LSID, given the object type and indices.
    `static IMetadata` | `createOMEXMLMetadata()` Creates an OME-XML metadata object using reflection, to avoid direct dependencies on the optional `loci.formats.ome` package.
    `static ome.xml.model.enums.AcquisitionMode` | `getAcquisitionMode(java.lang.String value)` Retrieves an `AcquisitionMode` enumeration value for the given String.
    `static ome.xml.model.enums.ArcType` | `getArcType(java.lang.String value)` Retrieves an `ArcType` enumeration value for the given String.
    `static ome.xml.model.enums.Binning` | `getBinning(java.lang.String value)` Retrieves an `Binning` enumeration value for the given String.
    `static ome.xml.model.enums.Compression` | `getCompression(java.lang.String value)` Retrieves an `Compression` enumeration value for the given String.
    `static ome.xml.model.enums.ContrastMethod` | `getContrastMethod(java.lang.String value)` Retrieves an `ContrastMethod` enumeration value for the given String.
    `static ome.xml.model.enums.Correction` | `getCorrection(java.lang.String value)` Retrieves an `Correction` enumeration value for the given String.
    `static ome.xml.model.enums.DetectorType` | `getDetectorType(java.lang.String value)` Retrieves an `DetectorType` enumeration value for the given String.
    `static ome.xml.model.enums.DimensionOrder` | `getDimensionOrder(java.lang.String value)` Retrieves an `DimensionOrder` enumeration value for the given String.
    `static ome.xml.model.enums.ExperimentType` | `getExperimentType(java.lang.String value)` Retrieves an `ExperimentType` enumeration value for the given String.
    `static ome.xml.model.enums.FilamentType` | `getFilamentType(java.lang.String value)` Retrieves an `FilamentType` enumeration value for the given String.
    `static ome.xml.model.enums.FillRule` | `getFillRule(java.lang.String value)` Retrieves an `FillRule` enumeration value for the given String.
    `static ome.xml.model.enums.FilterType` | `getFilterType(java.lang.String value)` Retrieves an `FilterType` enumeration value for the given String.
    `static ome.xml.model.enums.FontFamily` | `getFontFamily(java.lang.String value)` Retrieves an `FontFamily` enumeration value for the given String.
    `static ome.xml.model.enums.FontStyle` | `getFontStyle(java.lang.String value)` Retrieves an `FontStyle` enumeration value for the given String.
    `static ome.xml.model.enums.IlluminationType` | `getIlluminationType(java.lang.String value)` Retrieves an `IlluminationType` enumeration value for the given String.
    `static ome.xml.model.enums.Immersion` | `getImmersion(java.lang.String value)` Retrieves an `Immersion` enumeration value for the given String.
    `static ome.xml.model.enums.LaserMedium` | `getLaserMedium(java.lang.String value)` Retrieves an `LaserMedium` enumeration value for the given String.
    `static ome.xml.model.enums.LaserType` | `getLaserType(java.lang.String value)` Retrieves an `LaserType` enumeration value for the given String.
    `static ome.xml.model.enums.Marker` | `getMarker(java.lang.String value)` Retrieves an `Marker` enumeration value for the given String.
    `static ome.xml.model.enums.Medium` | `getMedium(java.lang.String value)` Retrieves an `Medium` enumeration value for the given String.
    `static ome.xml.model.enums.MicrobeamManipulationType` | `getMicrobeamManipulationType(java.lang.String value)` Retrieves an `MicrobeamManipulationType` enumeration value for the given String.
    `static ome.xml.model.enums.MicroscopeType` | `getMicroscopeType(java.lang.String value)` Retrieves an `MicroscopeType` enumeration value for the given String.
    `static ome.xml.model.enums.NamingConvention` | `getNamingConvention(java.lang.String value)` Retrieves an `NamingConvention` enumeration value for the given String.
    `static ome.xml.model.enums.PixelType` | `getPixelType(java.lang.String value)` Retrieves an `PixelType` enumeration value for the given String.
    `static ome.xml.model.enums.Pulse` | `getPulse(java.lang.String value)` Retrieves an `Pulse` enumeration value for the given String.
    `static java.lang.String[]` | `keys(java.util.Hashtable<java.lang.String,java.lang.Object> meta)` Gets a sorted list of keys from the given hashtable.
    `static java.lang.String` | `makeSaneDimensionOrder(java.lang.String dimensionOrder)` Adjusts the given dimension order as needed so that it contains exactly one of each of the following characters: 'X', 'Y', 'Z', 'C', 'T'.
    `static void` | `merge(java.util.Map<java.lang.String,java.lang.Object> src, java.util.Map<java.lang.String,java.lang.Object> dest, java.lang.String prefix)` Merges the given lists of metadata, prepending the specified prefix for the destination keys.
    `static void` | `populateMetadata(MetadataStore store, int series, java.lang.String imageName, boolean littleEndian, java.lang.String dimensionOrder, java.lang.String pixelType, int sizeX, int sizeY, int sizeZ, int sizeC, int sizeT, int samplesPerPixel)` Populates the given `MetadataStore`, for the specified series, using the provided values.
    `static void` | `populateMetadata(MetadataStore store, int series, java.lang.String imageName, CoreMetadata coreMeta)` Populates the given `MetadataStore`, for the specified series, using the values from the provided `CoreMetadata`.
    `static void` | `populateMetadata(MetadataStore store, java.lang.String file, int series, java.lang.String imageName, boolean littleEndian, java.lang.String dimensionOrder, java.lang.String pixelType, int sizeX, int sizeY, int sizeZ, int sizeC, int sizeT, int samplesPerPixel)` Populates the given `MetadataStore`, for the specified series, using the provided values.
    `static void` | `populatePixels(MetadataStore store, IFormatReader r)` Populates the Pixels element of the given metadata store, using core metadata from the given reader.
    `static void` | `populatePixels(MetadataStore store, IFormatReader r, boolean doPlane)` Populates the Pixels element of the given metadata store, using core metadata from the given reader.
    `static void` | `populatePixels(MetadataStore store, IFormatReader r, boolean doPlane, boolean doImageName)` Populates the Pixels element of the given metadata store, using core metadata from the given reader.
    `static void` | `populatePixelsOnly(MetadataStore store, IFormatReader r)`
    `static void` | `populatePixelsOnly(MetadataStore store, int series, boolean littleEndian, java.lang.String dimensionOrder, java.lang.String pixelType, int sizeX, int sizeY, int sizeZ, int sizeC, int sizeT, int samplesPerPixel)`
    `static void` | `setDefaultCreationDate(MetadataStore store, java.lang.String id, int series)` Sets a default creation date.
    `static void` | `setDefaultDateEnabled(boolean enabled)` Disables the setting of a default creation date.
    `static void` | `verifyMinimumPopulated(MetadataRetrieve src)` Checks whether the given metadata object has the minimum metadata populated to successfully describe an Image.
    `static void` | `verifyMinimumPopulated(MetadataRetrieve src, int n)` Checks whether the given metadata object has the minimum metadata populated to successfully describe the nth Image.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### LOGGER

          private static final org.slf4j.Logger LOGGER

    - #### defaultDateEnabled

          private static boolean defaultDateEnabled

  - ### Constructor Detail

    - #### MetadataTools

          private MetadataTools()

  - ### Method Detail

    - #### populatePixels

          public static void populatePixels(MetadataStore store,
                                            IFormatReader r)

      Populates the Pixels element of the given metadata store, using core metadata from the given reader. Delegate to `populatePixels(MetadataStore, IFormatReader, boolean, boolean)` with `doPlane` set to `false` and `doImageName` set to `true`.
      Parameters:
        `store` - The metadata store whose Pixels should be populated
        `r` - The format reader whose core metadata should be used

    - #### populatePixels

          public static void populatePixels(MetadataStore store,
                                            IFormatReader r,
                                            boolean doPlane)

      Populates the Pixels element of the given metadata store, using core metadata from the given reader. If the `doPlane` flag is set, then the Plane elements will be populated as well. Delegates to `populatePixels(MetadataStore, IFormatReader, boolean, boolean)` with `doImageName` set to `true`.
      Parameters:
        `store` - The metadata store whose Pixels should be populated
        `r` - The format reader whose core metadata should be used
        `doPlane` - Specifies whether Plane elements should be populated

    - #### populatePixels

          public static void populatePixels(MetadataStore store,
                                            IFormatReader r,
                                            boolean doPlane,
                                            boolean doImageName)

      Populates the Pixels element of the given metadata store, using core metadata from the given reader. If the `doPlane` flag is set, then the Plane elements will be populated as well. If the `doImageName` flag is set, then the image name will be populated as well.
      Parameters:
        `store` - The metadata store whose Pixels should be populated
        `r` - The format reader whose core metadata should be used
        `doPlane` - Specifies whether Plane elements should be populated
        `doImageName` - Specifies whether the Image name should be populated

    - #### populateMetadata

          public static void populateMetadata(MetadataStore store,
                                              int series,
                                              java.lang.String imageName,
                                              CoreMetadata coreMeta)

      Populates the given `MetadataStore`, for the specified series, using the values from the provided `CoreMetadata`.

      After calling this method, the metadata store will be sufficiently populated for use with an `IFormatWriter` (assuming it is also a `MetadataRetrieve`).

    - #### populateMetadata

          public static void populateMetadata(MetadataStore store,
                                              int series,
                                              java.lang.String imageName,
                                              boolean littleEndian,
                                              java.lang.String dimensionOrder,
                                              java.lang.String pixelType,
                                              int sizeX,
                                              int sizeY,
                                              int sizeZ,
                                              int sizeC,
                                              int sizeT,
                                              int samplesPerPixel)

      Populates the given `MetadataStore`, for the specified series, using the provided values.

      After calling this method, the metadata store will be sufficiently populated for use with an `IFormatWriter` (assuming it is also a `MetadataRetrieve`).

    - #### populateMetadata

          public static void populateMetadata(MetadataStore store,
                                              java.lang.String file,
                                              int series,
                                              java.lang.String imageName,
                                              boolean littleEndian,
                                              java.lang.String dimensionOrder,
                                              java.lang.String pixelType,
                                              int sizeX,
                                              int sizeY,
                                              int sizeZ,
                                              int sizeC,
                                              int sizeT,
                                              int samplesPerPixel)

      Populates the given `MetadataStore`, for the specified series, using the provided values.

      After calling this method, the metadata store will be sufficiently populated for use with an `IFormatWriter` (assuming it is also a `MetadataRetrieve`).

    - #### populatePixelsOnly

          public static void populatePixelsOnly(MetadataStore store,
                                                IFormatReader r)

    - #### populatePixelsOnly

          public static void populatePixelsOnly(MetadataStore store,
                                                int series,
                                                boolean littleEndian,
                                                java.lang.String dimensionOrder,
                                                java.lang.String pixelType,
                                                int sizeX,
                                                int sizeY,
                                                int sizeZ,
                                                int sizeC,
                                                int sizeT,
                                                int samplesPerPixel)

    - #### createLSID

          public static java.lang.String createLSID(java.lang.String type,
                                                    int... indices)

      Constructs an LSID, given the object type and indices. For example, if the arguments are "Detector", 1, and 0, the LSID will be "Detector:1:0".

    - #### verifyMinimumPopulated

          public static void verifyMinimumPopulated(MetadataRetrieve src)
                                             throws FormatException

      Checks whether the given metadata object has the minimum metadata populated to successfully describe an Image.
      Throws:
        `FormatException` - if there is a missing metadata field, or the metadata object is uninitialized

    - #### verifyMinimumPopulated

          public static void verifyMinimumPopulated(MetadataRetrieve src,
                                                    int n)
                                             throws FormatException

      Checks whether the given metadata object has the minimum metadata populated to successfully describe the nth Image.
      Throws:
        `FormatException` - if there is a missing metadata field, or the metadata object is uninitialized

    - #### setDefaultDateEnabled

          public static void setDefaultDateEnabled(boolean enabled)

      Disables the setting of a default creation date. By default, missing creation dates will be replaced with the corresponding file's last modification date, or the current time if the modification date is not available. Calling this method with the 'enabled' parameter set to 'false' causes missing creation dates to be left as null.
      Parameters:
        `enabled` - See above.
      See Also:
        `setDefaultCreationDate(MetadataStore, String, int)`

    - #### setDefaultCreationDate

          public static void setDefaultCreationDate(MetadataStore store,
                                                    java.lang.String id,
                                                    int series)

      Sets a default creation date. If the named file exists, then the creation date is set to the file's last modification date. Otherwise, it is set to the current date.
      See Also:
        `setDefaultDateEnabled(boolean)`

    - #### makeSaneDimensionOrder

          public static java.lang.String makeSaneDimensionOrder(java.lang.String dimensionOrder)

      Adjusts the given dimension order as needed so that it contains exactly one of each of the following characters: 'X', 'Y', 'Z', 'C', 'T'.

    - #### keys

          public static java.lang.String[] keys(java.util.Hashtable<java.lang.String,java.lang.Object> meta)

      Gets a sorted list of keys from the given hashtable.

    - #### merge

          public static void merge(java.util.Map<java.lang.String,java.lang.Object> src,
                                   java.util.Map<java.lang.String,java.lang.Object> dest,
                                   java.lang.String prefix)

      Merges the given lists of metadata, prepending the specified prefix for the destination keys.

    - #### createOMEXMLMetadata

          public static IMetadata createOMEXMLMetadata()

      Creates an OME-XML metadata object using reflection, to avoid direct dependencies on the optional `loci.formats.ome` package.
      Returns:
        A new instance of `AbstractOMEXMLMetadata`, or null if one cannot be created.

    - #### getAcquisitionMode

          public static ome.xml.model.enums.AcquisitionMode getAcquisitionMode(java.lang.String value)
                                                                        throws FormatException

      Retrieves an `AcquisitionMode` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getArcType

          public static ome.xml.model.enums.ArcType getArcType(java.lang.String value)
                                                        throws FormatException

      Retrieves an `ArcType` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getBinning

          public static ome.xml.model.enums.Binning getBinning(java.lang.String value)
                                                        throws FormatException

      Retrieves an `Binning` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getCompression

          public static ome.xml.model.enums.Compression getCompression(java.lang.String value)
                                                                throws FormatException

      Retrieves an `Compression` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getContrastMethod

          public static ome.xml.model.enums.ContrastMethod getContrastMethod(java.lang.String value)
                                                                      throws FormatException

      Retrieves an `ContrastMethod` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getCorrection

          public static ome.xml.model.enums.Correction getCorrection(java.lang.String value)
                                                              throws FormatException

      Retrieves an `Correction` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getDetectorType

          public static ome.xml.model.enums.DetectorType getDetectorType(java.lang.String value)
                                                                  throws FormatException

      Retrieves an `DetectorType` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getDimensionOrder

          public static ome.xml.model.enums.DimensionOrder getDimensionOrder(java.lang.String value)
                                                                      throws FormatException

      Retrieves an `DimensionOrder` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getExperimentType

          public static ome.xml.model.enums.ExperimentType getExperimentType(java.lang.String value)
                                                                      throws FormatException

      Retrieves an `ExperimentType` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getFilamentType

          public static ome.xml.model.enums.FilamentType getFilamentType(java.lang.String value)
                                                                  throws FormatException

      Retrieves an `FilamentType` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getFillRule

          public static ome.xml.model.enums.FillRule getFillRule(java.lang.String value)
                                                          throws FormatException

      Retrieves an `FillRule` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getFilterType

          public static ome.xml.model.enums.FilterType getFilterType(java.lang.String value)
                                                              throws FormatException

      Retrieves an `FilterType` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getFontFamily

          public static ome.xml.model.enums.FontFamily getFontFamily(java.lang.String value)
                                                              throws FormatException

      Retrieves an `FontFamily` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getFontStyle

          public static ome.xml.model.enums.FontStyle getFontStyle(java.lang.String value)
                                                            throws FormatException

      Retrieves an `FontStyle` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getIlluminationType

          public static ome.xml.model.enums.IlluminationType getIlluminationType(java.lang.String value)
                                                                          throws FormatException

      Retrieves an `IlluminationType` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getImmersion

          public static ome.xml.model.enums.Immersion getImmersion(java.lang.String value)
                                                            throws FormatException

      Retrieves an `Immersion` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getLaserMedium

          public static ome.xml.model.enums.LaserMedium getLaserMedium(java.lang.String value)
                                                                throws FormatException

      Retrieves an `LaserMedium` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getLaserType

          public static ome.xml.model.enums.LaserType getLaserType(java.lang.String value)
                                                            throws FormatException

      Retrieves an `LaserType` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getMarker

          public static ome.xml.model.enums.Marker getMarker(java.lang.String value)
                                                      throws FormatException

      Retrieves an `Marker` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getMedium

          public static ome.xml.model.enums.Medium getMedium(java.lang.String value)
                                                      throws FormatException

      Retrieves an `Medium` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getMicrobeamManipulationType

          public static ome.xml.model.enums.MicrobeamManipulationType getMicrobeamManipulationType(java.lang.String value)
                                                                                            throws FormatException

      Retrieves an `MicrobeamManipulationType` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getMicroscopeType

          public static ome.xml.model.enums.MicroscopeType getMicroscopeType(java.lang.String value)
                                                                      throws FormatException

      Retrieves an `MicroscopeType` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getNamingConvention

          public static ome.xml.model.enums.NamingConvention getNamingConvention(java.lang.String value)
                                                                          throws FormatException

      Retrieves an `NamingConvention` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getPixelType

          public static ome.xml.model.enums.PixelType getPixelType(java.lang.String value)
                                                            throws FormatException

      Retrieves an `PixelType` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

    - #### getPulse

          public static ome.xml.model.enums.Pulse getPulse(java.lang.String value)
                                                    throws FormatException

      Retrieves an `Pulse` enumeration value for the given String.
      Throws:
        `ome.xml.model.enums.EnumerationException` - if an appropriate enumeration value is not found.
        `FormatException`

Copyright © 2026 Open Microscopy Environment