loci.formats

## Class WrappedReader

- java.lang.Object
- - loci.formats.FormatHandler
  - - loci.formats.FormatReader
    - - loci.formats.WrappedReader

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, ICompressedTileReader, IFormatHandler, IFormatReader, IMetadataConfigurable, IPyramidHandler
  Direct Known Subclasses:
    FilePatternReader

      public abstract class WrappedReader
      extends FormatReader

  Helper class for readers which wrap other readers. Some methods can only be called before initFile/setId, others can only be called after. This class assumes the helper object is only available after initFile() has been called. Instead the inherited FormatReader and IMetadataConfigurable methods are kept since the properties they set are inherited. These properties can be set on the helper class in initFile() by calling callDeferredSetters(). The following setters and corresponding getters are not passed to the helper. If you initialise the helper in the constructor instead of at runtime during initFile() you may wish to override them. - getSupportedMetadataLevels - setMetadataOptions, getMetadataOptions - setGroupFiles, isGroupFiles - setNormalized, isNormalized - setOriginalMetadataPopulated, isOriginalMetadataPopulated - setMetadataFiltered, isMetadataFiltered - setMetadataStore, getMetadataStore - setFlattenedResolutions, hasFlattenedResolutions Developer note: the list of methods are those in IMetadataConfigurable plus FormatReader methods which contain `FormatTools.assertId(currentId, false, 1)`

- - ### Field Summary

    - ### Fields inherited from class loci.formats.FormatReader

      `core, coreIndex, datasetDescription, domains, fillColor, filterMetadata, flattenedResolutions, group, hasCompanionFiles, in, indexedAsRGB, metadata, metadataStore, normalizeData, resolution, saveOriginalMetadata, series, suffixNecessary, suffixSufficient, THUMBNAIL_DIMENSION`

    - ### Fields inherited from class loci.formats.FormatHandler

      `COMPRESSION_SUFFIXES, currentId, format, LOGGER, metadataOptions, suffixes`

    - ### Fields inherited from interface loci.formats.IFormatReader

      `CAN_GROUP, CANNOT_GROUP, MUST_GROUP`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `WrappedReader(java.lang.String format, java.lang.String[] suffixes)` Constructs a new wrapped reader with the given name and suffixes.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `callDeferredSetters(ReaderWrapper helper)` A helper may not exist before initFile() is called.
    `void` | `close()`
    `void` | `close(boolean fileOnly)` Closes the currently open file.
    `int` | `coreIndexToSeries(int index)` Returns the series corresponding to the specified core index.
    `short[][]` | `get16BitLookupTable()` Gets the 16-bit color lookup table associated with the most recently opened image.
    `byte[][]` | `get8BitLookupTable()` Gets the 8-bit color lookup table associated with the most recently opened image.
    `int` | `getBitsPerPixel()` Gets the number of valid bits per pixel.
    `int` | `getCoreIndex()` Return the index into CoreMetadata of the current resolution/series.
    `java.util.List<CoreMetadata>` | `getCoreMetadataList()` Obtains the core metadata values for the current file.
    `java.lang.String` | `getDatasetStructureDescription()` Returns a short description of the dataset structure.
    `java.lang.String` | `getDimensionOrder()` Gets a five-character string representing the dimension order in which planes will be returned.
    `java.lang.String[]` | `getDomains()` Returns the list of domains represented by the current file.
    `int` | `getEffectiveSizeC()` Gets the effective size of the C dimension, guaranteeing that getEffectiveSizeC() * getSizeZ() * getSizeT() == getImageCount() regardless of the result of isRGB().
    `java.util.Hashtable<java.lang.String,java.lang.Object>` | `getGlobalMetadata()` Obtains the hashtable containing the metadata field/value pairs from the current file.
    `protected abstract ReaderWrapper` | `getHelper()` Get the helper class that reads images
    `int` | `getImageCount()` Determines the number of image planes in the current file.
    `int` | `getIndex(int z, int c, int t)` Gets the rasterized index corresponding to the given Z, C and T coordinates (real sizes).
    `java.lang.Object` | `getMetadataStoreRoot()` Retrieves the current metadata store's root object.
    `java.lang.Object` | `getMetadataValue(java.lang.String field)` Obtains the specified metadata field's value for the current file.
    `Modulo` | `getModuloC()`
    `Modulo` | `getModuloT()`
    `Modulo` | `getModuloZ()`
    `java.lang.Class<?>` | `getNativeDataType()` Returns the native data type of image planes for this reader, as returned by `IFormatReader.openPlane(int, int, int, int, int)` or `IFormatWriter.savePlane(int, java.lang.Object)`.
    `int` | `getOptimalTileHeight()` Returns the optimal sub-image height for use with openBytes.
    `int` | `getOptimalTileWidth()` Returns the optimal sub-image width for use with openBytes.
    `int` | `getPixelType()` Gets the pixel type.
    `java.lang.String[]` | `getPossibleDomains(java.lang.String id)` Returns a list of scientific domains in which this format is used.
    `int` | `getResolution()` Get the current resolution level.
    `int` | `getResolutionCount()` Return the number of resolutions for the current series.
    `int` | `getRGBChannelCount()` Gets the number of channels returned with each call to openBytes.
    `int` | `getSeries()` Gets the currently active series.
    `int` | `getSeriesCount()` Gets the number of series in this file.
    `java.util.Hashtable<java.lang.String,java.lang.Object>` | `getSeriesMetadata()` Obtains the hashtable containing metadata field/value pairs from the current series in the current file.
    `java.lang.Object` | `getSeriesMetadataValue(java.lang.String field)` Obtains the specified metadata field's value for the current series in the current file.
    `java.lang.String[]` | `getSeriesUsedFiles(boolean noPixels)` Returns an array of filenames needed to open the current series.
    `int` | `getSizeC()` Gets the size of the C dimension.
    `int` | `getSizeT()` Gets the size of the T dimension.
    `int` | `getSizeX()` Gets the size of the X dimension.
    `int` | `getSizeY()` Gets the size of the Y dimension.
    `int` | `getSizeZ()` Gets the size of the Z dimension.
    `int` | `getThumbSizeX()` Get the size of the X dimension for the thumbnail.
    `int` | `getThumbSizeY()` Get the size of the Y dimension for the thumbnail.
    `IFormatReader[]` | `getUnderlyingReaders()` Retrieves all underlying readers.
    `java.lang.String[]` | `getUsedFiles(boolean noPixels)` Returns an array of filenames needed to open this dataset.
    `int[]` | `getZCTCoords(int index)` Gets the Z, C and T coordinates (real sizes) corresponding to the given rasterized index value.
    `boolean` | `hasCompanionFiles()` Returns true if this format supports multi-file datasets.
    `boolean` | `isFalseColor()` Returns false if `IFormatReader.isIndexed()` is false, or if `IFormatReader.isIndexed()` is true and the lookup table represents "real" color data.
    `boolean` | `isIndexed()` Gets whether the image planes are indexed color.
    `boolean` | `isInterleaved()` Gets whether or not the channels are interleaved.
    `boolean` | `isInterleaved(int subC)` Gets whether or not the given sub-channel is interleaved.
    `boolean` | `isLittleEndian()` Gets whether the data is in little-endian format.
    `boolean` | `isMetadataComplete()` Returns true if this format's metadata is completely parsed.
    `boolean` | `isOrderCertain()` Gets whether the dimension order and sizes are known, or merely guesses.
    `boolean` | `isRGB()` Checks if the image planes in the file have more than one channel per `IFormatReader.openBytes(int)` call.
    `boolean` | `isSingleFile(java.lang.String id)` Returns true if the named file is expected to be the only file in the dataset.
    `boolean` | `isThumbnailSeries()` Gets whether the current series is a lower resolution copy of a different series.
    `byte[]` | `openBytes(int no)` Obtains the specified image plane from the current file as a byte array.
    `byte[]` | `openBytes(int no, byte[] buf)` Obtains the specified image plane from the current file into a pre-allocated byte array of (sizeX * sizeY * bytesPerPixel * RGB channel count).
    `byte[]` | `openBytes(int no, byte[] buf, int x, int y, int w, int h)` Obtains a sub-image of the specified image plane into a pre-allocated byte array.
    `byte[]` | `openBytes(int no, int x, int y, int w, int h)` Obtains a sub-image of the specified image plane, whose upper-left corner is given by (x, y).
    `java.lang.Object` | `openPlane(int no, int x, int y, int w, int h)` Obtains the specified image plane (or sub-image thereof) in the reader's native data structure.
    `byte[]` | `openThumbBytes(int no)` Obtains a thumbnail for the specified image plane from the current file, as a byte array.
    `void` | `reopenFile()` Reopen any files that were closed, and which are expected to be open while the reader is open.
    `int` | `seriesToCoreIndex(int series)` Returns the first core index corresponding to the specified series.
    `void` | `setCoreIndex(int no)` Set the current resolution/series (ignores subresolutions).
    `void` | `setResolution(int no)` Set the resolution level.
    `void` | `setSeries(int no)` Activates the specified series.

    - ### Methods inherited from class loci.formats.FormatReader

      `addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMetaList, addMeta, addMetaList, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMetaList, fileGroupOption, flattenHashtables, getAcquisitionMode, getAdvancedSeriesUsedFiles, getAdvancedUsedFiles, getArcType, getAvailableOptions, getBinning, getCompression, getContrastMethod, getCorrection, getCurrentCore, getCurrentFile, getDetectorType, getDimensionOrder, getExperimentType, getFilamentType, getFillColor, getFillRule, getFilterType, getFontFamily, getFontStyle, getGlobalMeta, getIlluminationType, getImmersion, getIndex, getLaserMedium, getLaserType, getMarker, getMedium, getMetadataStore, getMicrobeamManipulationType, getMicroscopeType, getNamingConvention, getPixelType, getPulse, getRequiredDirectories, getRotationTransform, getSeriesMeta, getSeriesUsedFiles, getTileColumns, getTileRows, getUsedFiles, getZCTModuloCoords, hasFlattenedResolutions, initFile, isGroupFiles, isMetadataFiltered, isNormalized, isOriginalMetadataPopulated, isThisType, isThisType, isThisType, isThisType, isUsedFile, makeFilterMetadata, readPlane, readPlane, readPlane, setFillColor, setFlattenedResolutions, setGroupFiles, setId, setMetadataFiltered, setMetadataStore, setNormalized, setOriginalMetadataPopulated, updateMetadataLists`

    - ### Methods inherited from class loci.formats.FormatHandler

      `checkSuffix, checkSuffix, getFormat, getMetadataOptions, getSuffixes, getSupportedMetadataLevels, setMetadataOptions`

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

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

    - ### Methods inherited from interface loci.formats.IFormatHandler

      `getFormat, getSuffixes`

    - ### Methods inherited from interface loci.formats.IMetadataConfigurable

      `getMetadataOptions, getSupportedMetadataLevels, setMetadataOptions`

    - ### Methods inherited from interface loci.formats.ICompressedTileReader

      `getTileCodec, getTileCodecOptions, openCompressedBytes, openCompressedBytes`

- - ### Constructor Detail

    - #### WrappedReader

          protected WrappedReader(java.lang.String format,
                                  java.lang.String[] suffixes)

      Constructs a new wrapped reader with the given name and suffixes.

  - ### Method Detail

    - #### getHelper

          protected abstract ReaderWrapper getHelper()

      Get the helper class that reads images

    - #### reopenFile

          public void reopenFile()
                          throws java.io.IOException

      Description copied from interface: `IFormatReader`
      Reopen any files that were closed, and which are expected to be open while the reader is open. This assumes that `IFormatHandler.setId(java.lang.String)` has been called, but close(false) has not been called.
      Specified by:
        `reopenFile` in interface `IFormatReader`
      Overrides:
        `reopenFile` in class `FormatReader`
      Throws:
        `java.io.IOException`

    - #### getImageCount

          public int getImageCount()

      Description copied from interface: `IFormatReader`
      Determines the number of image planes in the current file.
      Specified by:
        `getImageCount` in interface `IFormatReader`
      Overrides:
        `getImageCount` in class `FormatReader`

    - #### isRGB

          public boolean isRGB()

      Description copied from interface: `IFormatReader`
      Checks if the image planes in the file have more than one channel per `IFormatReader.openBytes(int)` call. This method returns true if and only if `IFormatReader.getRGBChannelCount()` returns a value greater than 1.
      Specified by:
        `isRGB` in interface `IFormatReader`
      Overrides:
        `isRGB` in class `FormatReader`

    - #### getSizeX

          public int getSizeX()

      Description copied from interface: `IFormatReader`
      Gets the size of the X dimension.
      Specified by:
        `getSizeX` in interface `IFormatReader`
      Overrides:
        `getSizeX` in class `FormatReader`

    - #### getSizeY

          public int getSizeY()

      Description copied from interface: `IFormatReader`
      Gets the size of the Y dimension.
      Specified by:
        `getSizeY` in interface `IFormatReader`
      Overrides:
        `getSizeY` in class `FormatReader`

    - #### getSizeZ

          public int getSizeZ()

      Description copied from interface: `IFormatReader`
      Gets the size of the Z dimension.
      Specified by:
        `getSizeZ` in interface `IFormatReader`
      Overrides:
        `getSizeZ` in class `FormatReader`

    - #### getSizeC

          public int getSizeC()

      Description copied from interface: `IFormatReader`
      Gets the size of the C dimension.
      Specified by:
        `getSizeC` in interface `IFormatReader`
      Overrides:
        `getSizeC` in class `FormatReader`

    - #### getSizeT

          public int getSizeT()

      Description copied from interface: `IFormatReader`
      Gets the size of the T dimension.
      Specified by:
        `getSizeT` in interface `IFormatReader`
      Overrides:
        `getSizeT` in class `FormatReader`

    - #### getPixelType

          public int getPixelType()

      Description copied from interface: `IFormatReader`
      Gets the pixel type.
      Specified by:
        `getPixelType` in interface `IFormatReader`
      Overrides:
        `getPixelType` in class `FormatReader`
      Returns:
        the pixel type as an enumeration from `FormatTools` static pixel types such as `FormatTools.INT8`.

    - #### getBitsPerPixel

          public int getBitsPerPixel()

      Description copied from interface: `IFormatReader`
      Gets the number of valid bits per pixel. The number of valid bits per pixel is always less than or equal to the number of bits per pixel that correspond to `IFormatReader.getPixelType()`.
      Specified by:
        `getBitsPerPixel` in interface `IFormatReader`
      Overrides:
        `getBitsPerPixel` in class `FormatReader`

    - #### getEffectiveSizeC

          public int getEffectiveSizeC()

      Description copied from interface: `IFormatReader`
      Gets the effective size of the C dimension, guaranteeing that getEffectiveSizeC() * getSizeZ() * getSizeT() == getImageCount() regardless of the result of isRGB().
      Specified by:
        `getEffectiveSizeC` in interface `IFormatReader`
      Overrides:
        `getEffectiveSizeC` in class `FormatReader`

    - #### getRGBChannelCount

          public int getRGBChannelCount()

      Description copied from interface: `IFormatReader`
      Gets the number of channels returned with each call to openBytes. The most common case where this value is greater than 1 is for interleaved RGB data, such as a 24-bit color image plane. However, it is possible for this value to be greater than 1 for non-interleaved data, such as an RGB TIFF with Planar rather than Chunky configuration.
      Specified by:
        `getRGBChannelCount` in interface `IFormatReader`
      Overrides:
        `getRGBChannelCount` in class `FormatReader`

    - #### isIndexed

          public boolean isIndexed()

      Description copied from interface: `IFormatReader`
      Gets whether the image planes are indexed color. This value has no impact on `IFormatReader.getSizeC()`, `IFormatReader.getEffectiveSizeC()` or `IFormatReader.getRGBChannelCount()`.
      Specified by:
        `isIndexed` in interface `IFormatReader`
      Overrides:
        `isIndexed` in class `FormatReader`

    - #### isFalseColor

          public boolean isFalseColor()

      Description copied from interface: `IFormatReader`
      Returns false if `IFormatReader.isIndexed()` is false, or if `IFormatReader.isIndexed()` is true and the lookup table represents "real" color data. Returns true if `IFormatReader.isIndexed()` is true and the lookup table is only present to aid in visualization.
      Specified by:
        `isFalseColor` in interface `IFormatReader`
      Overrides:
        `isFalseColor` in class `FormatReader`

    - #### get8BitLookupTable

          public byte[][] get8BitLookupTable()
                                      throws FormatException,
                                             java.io.IOException

      Description copied from interface: `IFormatReader`
      Gets the 8-bit color lookup table associated with the most recently opened image. If no image planes have been opened, or if `IFormatReader.isIndexed()` returns false, then this may return null. Also, if `IFormatReader.getPixelType()` returns anything other than `FormatTools.INT8` or `FormatTools.UINT8`, this method will return null.
      Specified by:
        `get8BitLookupTable` in interface `IFormatReader`
      Overrides:
        `get8BitLookupTable` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`

    - #### get16BitLookupTable

          public short[][] get16BitLookupTable()
                                        throws FormatException,
                                               java.io.IOException

      Description copied from interface: `IFormatReader`
      Gets the 16-bit color lookup table associated with the most recently opened image. If no image planes have been opened, or if `IFormatReader.isIndexed()` returns false, then this may return null. Also, if `IFormatReader.getPixelType()` returns anything other than `FormatTools.INT16` or `FormatTools.UINT16`, this method will return null.
      Specified by:
        `get16BitLookupTable` in interface `IFormatReader`
      Overrides:
        `get16BitLookupTable` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`

    - #### getModuloZ

          public Modulo getModuloZ()

      Specified by:
        `getModuloZ` in interface `IFormatReader`
      Overrides:
        `getModuloZ` in class `FormatReader`

    - #### getModuloC

          public Modulo getModuloC()

      Specified by:
        `getModuloC` in interface `IFormatReader`
      Overrides:
        `getModuloC` in class `FormatReader`

    - #### getModuloT

          public Modulo getModuloT()

      Specified by:
        `getModuloT` in interface `IFormatReader`
      Overrides:
        `getModuloT` in class `FormatReader`

    - #### getThumbSizeX

          public int getThumbSizeX()

      Description copied from interface: `IFormatReader`
      Get the size of the X dimension for the thumbnail.
      Specified by:
        `getThumbSizeX` in interface `IFormatReader`
      Overrides:
        `getThumbSizeX` in class `FormatReader`

    - #### getThumbSizeY

          public int getThumbSizeY()

      Description copied from interface: `IFormatReader`
      Get the size of the Y dimension for the thumbnail.
      Specified by:
        `getThumbSizeY` in interface `IFormatReader`
      Overrides:
        `getThumbSizeY` in class `FormatReader`

    - #### isLittleEndian

          public boolean isLittleEndian()

      Description copied from interface: `IFormatReader`
      Gets whether the data is in little-endian format.
      Specified by:
        `isLittleEndian` in interface `IFormatReader`
      Overrides:
        `isLittleEndian` in class `FormatReader`

    - #### getDimensionOrder

          public java.lang.String getDimensionOrder()

      Description copied from interface: `IFormatReader`
      Gets a five-character string representing the dimension order in which planes will be returned. Valid orders are:
      - XYCTZ
      - XYCZT
      - XYTCZ
      - XYTZC
      - XYZCT
      - XYZTC
      In cases where the channels are interleaved (e.g., CXYTZ), C will be the first dimension after X and Y (e.g., XYCTZ) and the `IFormatReader.isInterleaved()` method will return true.
      Specified by:
        `getDimensionOrder` in interface `IFormatReader`
      Overrides:
        `getDimensionOrder` in class `FormatReader`

    - #### isOrderCertain

          public boolean isOrderCertain()

      Description copied from interface: `IFormatReader`
      Gets whether the dimension order and sizes are known, or merely guesses.
      Specified by:
        `isOrderCertain` in interface `IFormatReader`
      Overrides:
        `isOrderCertain` in class `FormatReader`

    - #### isThumbnailSeries

          public boolean isThumbnailSeries()

      Description copied from interface: `IFormatReader`
      Gets whether the current series is a lower resolution copy of a different series.
      Specified by:
        `isThumbnailSeries` in interface `IFormatReader`
      Overrides:
        `isThumbnailSeries` in class `FormatReader`

    - #### isInterleaved

          public boolean isInterleaved()

      Description copied from interface: `IFormatReader`
      Gets whether or not the channels are interleaved. This method exists because X and Y must appear first in the dimension order. For interleaved data, `IFormatReader.getDimensionOrder()` returns XYCTZ or XYCZT, and this method returns true. Note that this flag returns whether or not the data returned by `IFormatReader.openBytes(int)` is interleaved. In most cases, this will match the interleaving in the original file, but for some formats (e.g. TIFF) channel re-ordering is done internally and the return value of this method will not match what is in the original file.
      Specified by:
        `isInterleaved` in interface `IFormatReader`
      Overrides:
        `isInterleaved` in class `FormatReader`

    - #### isInterleaved

          public boolean isInterleaved(int subC)

      Description copied from interface: `IFormatReader`
      Gets whether or not the given sub-channel is interleaved. This method exists because some data with multiple rasterized sub-dimensions within C have one sub-dimension interleaved, and the other not—e.g., `SDTReader` handles spectral-lifetime data with interleaved lifetime bins and non-interleaved spectral channels.
      Specified by:
        `isInterleaved` in interface `IFormatReader`
      Overrides:
        `isInterleaved` in class `FormatReader`

    - #### openBytes

          public byte[] openBytes(int no)
                           throws FormatException,
                                  java.io.IOException

      Description copied from interface: `IFormatReader`
      Obtains the specified image plane from the current file as a byte array.
      Specified by:
        `openBytes` in interface `IFormatReader`
      Overrides:
        `openBytes` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`
      See Also:
        `IFormatReader.openBytes(int, byte[])`

    - #### openBytes

          public byte[] openBytes(int no,
                                  int x,
                                  int y,
                                  int w,
                                  int h)
                           throws FormatException,
                                  java.io.IOException

      Description copied from interface: `IFormatReader`
      Obtains a sub-image of the specified image plane, whose upper-left corner is given by (x, y).
      Specified by:
        `openBytes` in interface `IFormatReader`
      Overrides:
        `openBytes` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`

    - #### openBytes

          public byte[] openBytes(int no,
                                  byte[] buf)
                           throws FormatException,
                                  java.io.IOException

      Description copied from interface: `IFormatReader`
      Obtains the specified image plane from the current file into a pre-allocated byte array of (sizeX * sizeY * bytesPerPixel * RGB channel count).
      Specified by:
        `openBytes` in interface `IFormatReader`
      Overrides:
        `openBytes` in class `FormatReader`
      Parameters:
        `no` - the plane index within the current series.
        `buf` - a pre-allocated buffer.
      Returns:
        the pre-allocated buffer `buf` for convenience.
      Throws:
        `FormatException` - if there was a problem parsing the metadata of the file.
        `java.io.IOException` - if there was a problem reading the file.

    - #### openBytes

          public byte[] openBytes(int no,
                                  byte[] buf,
                                  int x,
                                  int y,
                                  int w,
                                  int h)
                           throws FormatException,
                                  java.io.IOException

      Description copied from interface: `IFormatReader`
      Obtains a sub-image of the specified image plane into a pre-allocated byte array.
      Specified by:
        `openBytes` in interface `IFormatReader`
      Specified by:
        `openBytes` in class `FormatReader`
      Parameters:
        `no` - the plane index within the current series.
        `buf` - a pre-allocated buffer.
        `x` - X coordinate of the upper-left corner of the sub-image
        `y` - Y coordinate of the upper-left corner of the sub-image
        `w` - width of the sub-image
        `h` - height of the sub-image
      Returns:
        the pre-allocated buffer `buf` for convenience.
      Throws:
        `FormatException` - if there was a problem parsing the metadata of the file.
        `java.io.IOException` - if there was a problem reading the file.

    - #### openPlane

          public java.lang.Object openPlane(int no,
                                            int x,
                                            int y,
                                            int w,
                                            int h)
                                     throws FormatException,
                                            java.io.IOException

      Description copied from interface: `IFormatReader`
      Obtains the specified image plane (or sub-image thereof) in the reader's native data structure. For most readers this is a byte array; however, some readers call external APIs that work with other types such as `BufferedImage`. The openPlane method exists to maintain generality and efficiency while avoiding pollution of the API with AWT-specific logic.
      Specified by:
        `openPlane` in interface `IFormatReader`
      Overrides:
        `openPlane` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`
      See Also:
        `FormatReader`, `BufferedImageReader`

    - #### openThumbBytes

          public byte[] openThumbBytes(int no)
                                throws FormatException,
                                       java.io.IOException

      Description copied from interface: `IFormatReader`
      Obtains a thumbnail for the specified image plane from the current file, as a byte array.
      Specified by:
        `openThumbBytes` in interface `IFormatReader`
      Overrides:
        `openThumbBytes` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`

    - #### close

          public void close(boolean fileOnly)
                     throws java.io.IOException

      Description copied from interface: `IFormatReader`
      Closes the currently open file. If the flag is set, this is all that happens; if unset, it is equivalent to calling `Closeable.close()`.
      Specified by:
        `close` in interface `IFormatReader`
      Overrides:
        `close` in class `FormatReader`
      Throws:
        `java.io.IOException`

    - #### getSeriesCount

          public int getSeriesCount()

      Description copied from interface: `IFormatReader`
      Gets the number of series in this file.
      Specified by:
        `getSeriesCount` in interface `IFormatReader`
      Overrides:
        `getSeriesCount` in class `FormatReader`

    - #### setSeries

          public void setSeries(int no)

      Description copied from interface: `IFormatReader`
      Activates the specified series. This also resets the resolution to 0.
      Specified by:
        `setSeries` in interface `IFormatReader`
      Overrides:
        `setSeries` in class `FormatReader`

    - #### getSeries

          public int getSeries()

      Description copied from interface: `IFormatReader`
      Gets the currently active series.
      Specified by:
        `getSeries` in interface `IFormatReader`
      Overrides:
        `getSeries` in class `FormatReader`

    - #### isMetadataComplete

          public boolean isMetadataComplete()

      Description copied from interface: `IFormatReader`
      Returns true if this format's metadata is completely parsed.
      Specified by:
        `isMetadataComplete` in interface `IFormatReader`
      Overrides:
        `isMetadataComplete` in class `FormatReader`

    - #### getSeriesUsedFiles

          public java.lang.String[] getSeriesUsedFiles(boolean noPixels)

      Description copied from interface: `IFormatReader`
      Returns an array of filenames needed to open the current series. If the 'noPixels' flag is set, then only files that do not contain pixel data will be returned. The first element in the array is expected to be the path passed to `IFormatHandler.setId(String)`, if appropriate based upon 'noPixels'. The remaining elements are expected to be in a consistent order; if a directory listing is necessary to build the list then it should be sorted first.
      Specified by:
        `getSeriesUsedFiles` in interface `IFormatReader`
      Overrides:
        `getSeriesUsedFiles` in class `FormatReader`

    - #### getUsedFiles

          public java.lang.String[] getUsedFiles(boolean noPixels)

      Description copied from interface: `IFormatReader`
      Returns an array of filenames needed to open this dataset. If the 'noPixels' flag is set, then only files that do not contain pixel data will be returned. The first element in the array is expected to be the path passed to `IFormatHandler.setId(String)`, if appropriate based upon 'noPixels'. The remaining elements are expected to be in a consistent order; if a directory listing is necessary to build the list then it should be sorted first.
      Specified by:
        `getUsedFiles` in interface `IFormatReader`
      Overrides:
        `getUsedFiles` in class `FormatReader`

    - #### getIndex

          public int getIndex(int z,
                              int c,
                              int t)

      Description copied from interface: `IFormatReader`
      Gets the rasterized index corresponding to the given Z, C and T coordinates (real sizes).
      Specified by:
        `getIndex` in interface `IFormatReader`
      Overrides:
        `getIndex` in class `FormatReader`

    - #### getZCTCoords

          public int[] getZCTCoords(int index)

      Description copied from interface: `IFormatReader`
      Gets the Z, C and T coordinates (real sizes) corresponding to the given rasterized index value.
      Specified by:
        `getZCTCoords` in interface `IFormatReader`
      Overrides:
        `getZCTCoords` in class `FormatReader`

    - #### getMetadataValue

          public java.lang.Object getMetadataValue(java.lang.String field)

      Description copied from interface: `IFormatReader`
      Obtains the specified metadata field's value for the current file.
      Specified by:
        `getMetadataValue` in interface `IFormatReader`
      Overrides:
        `getMetadataValue` in class `FormatReader`
      Parameters:
        `field` - the name associated with the metadata field
      Returns:
        the value, or null if the field doesn't exist

    - #### getSeriesMetadataValue

          public java.lang.Object getSeriesMetadataValue(java.lang.String field)

      Description copied from interface: `IFormatReader`
      Obtains the specified metadata field's value for the current series in the current file.
      Specified by:
        `getSeriesMetadataValue` in interface `IFormatReader`
      Overrides:
        `getSeriesMetadataValue` in class `FormatReader`
      Parameters:
        `field` - the name associated with the metadata field
      Returns:
        the value, or null if the field doesn't exist

    - #### getGlobalMetadata

          public java.util.Hashtable<java.lang.String,java.lang.Object> getGlobalMetadata()

      Description copied from interface: `IFormatReader`
      Obtains the hashtable containing the metadata field/value pairs from the current file.
      Specified by:
        `getGlobalMetadata` in interface `IFormatReader`
      Overrides:
        `getGlobalMetadata` in class `FormatReader`
      Returns:
        the hashtable containing all non-series-specific metadata from the file

    - #### getSeriesMetadata

          public java.util.Hashtable<java.lang.String,java.lang.Object> getSeriesMetadata()

      Description copied from interface: `IFormatReader`
      Obtains the hashtable containing metadata field/value pairs from the current series in the current file.
      Specified by:
        `getSeriesMetadata` in interface `IFormatReader`
      Overrides:
        `getSeriesMetadata` in class `FormatReader`

    - #### getCoreMetadataList

          public java.util.List<CoreMetadata> getCoreMetadataList()

      Description copied from interface: `IFormatReader`
      Obtains the core metadata values for the current file.
      Specified by:
        `getCoreMetadataList` in interface `IFormatReader`
      Overrides:
        `getCoreMetadataList` in class `FormatReader`

    - #### getMetadataStoreRoot

          public java.lang.Object getMetadataStoreRoot()

      Description copied from interface: `IFormatReader`
      Retrieves the current metadata store's root object. It is guaranteed that all file parsing has been performed by the reader prior to retrieval. Requests for a full populated root object should be made using this method.
      Specified by:
        `getMetadataStoreRoot` in interface `IFormatReader`
      Overrides:
        `getMetadataStoreRoot` in class `FormatReader`
      Returns:
        Current metadata store's root object fully populated.

    - #### getUnderlyingReaders

          public IFormatReader[] getUnderlyingReaders()

      Description copied from interface: `IFormatReader`
      Retrieves all underlying readers. Returns null if there are no underlying readers.
      Specified by:
        `getUnderlyingReaders` in interface `IFormatReader`
      Overrides:
        `getUnderlyingReaders` in class `FormatReader`

    - #### isSingleFile

          public boolean isSingleFile(java.lang.String id)
                               throws FormatException,
                                      java.io.IOException

      Description copied from interface: `IFormatReader`
      Returns true if the named file is expected to be the only file in the dataset. For single-file formats, always returns true.
      Specified by:
        `isSingleFile` in interface `IFormatReader`
      Overrides:
        `isSingleFile` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`

    - #### getDatasetStructureDescription

          public java.lang.String getDatasetStructureDescription()

      Description copied from interface: `IFormatReader`
      Returns a short description of the dataset structure.
      Specified by:
        `getDatasetStructureDescription` in interface `IFormatReader`
      Overrides:
        `getDatasetStructureDescription` in class `FormatReader`

    - #### hasCompanionFiles

          public boolean hasCompanionFiles()

      Description copied from interface: `IFormatReader`
      Returns true if this format supports multi-file datasets.
      Specified by:
        `hasCompanionFiles` in interface `IFormatReader`
      Overrides:
        `hasCompanionFiles` in class `FormatReader`

    - #### getPossibleDomains

          public java.lang.String[] getPossibleDomains(java.lang.String id)
                                                throws FormatException,
                                                       java.io.IOException

      Description copied from interface: `IFormatReader`
      Returns a list of scientific domains in which this format is used.
      Specified by:
        `getPossibleDomains` in interface `IFormatReader`
      Overrides:
        `getPossibleDomains` in class `FormatReader`
      Throws:
        `FormatException`
        `java.io.IOException`

    - #### getDomains

          public java.lang.String[] getDomains()

      Description copied from interface: `IFormatReader`
      Returns the list of domains represented by the current file.
      Specified by:
        `getDomains` in interface `IFormatReader`
      Overrides:
        `getDomains` in class `FormatReader`

    - #### getOptimalTileWidth

          public int getOptimalTileWidth()

      Description copied from interface: `IFormatReader`
      Returns the optimal sub-image width for use with openBytes.
      Specified by:
        `getOptimalTileWidth` in interface `IFormatReader`
      Overrides:
        `getOptimalTileWidth` in class `FormatReader`

    - #### getOptimalTileHeight

          public int getOptimalTileHeight()

      Description copied from interface: `IFormatReader`
      Returns the optimal sub-image height for use with openBytes.
      Specified by:
        `getOptimalTileHeight` in interface `IFormatReader`
      Overrides:
        `getOptimalTileHeight` in class `FormatReader`

    - #### getCoreIndex

          public int getCoreIndex()

      Description copied from interface: `IFormatReader`
      Return the index into CoreMetadata of the current resolution/series.
      Specified by:
        `getCoreIndex` in interface `IFormatReader`
      Overrides:
        `getCoreIndex` in class `FormatReader`

    - #### setCoreIndex

          public void setCoreIndex(int no)

      Description copied from interface: `IFormatReader`
      Set the current resolution/series (ignores subresolutions). Equivalent to setSeries, but with flattened resolutions always set to false.
      Specified by:
        `setCoreIndex` in interface `IFormatReader`
      Overrides:
        `setCoreIndex` in class `FormatReader`

    - #### seriesToCoreIndex

          public int seriesToCoreIndex(int series)

      Description copied from interface: `IFormatReader`
      Returns the first core index corresponding to the specified series.
      Specified by:
        `seriesToCoreIndex` in interface `IFormatReader`
      Overrides:
        `seriesToCoreIndex` in class `FormatReader`

    - #### coreIndexToSeries

          public int coreIndexToSeries(int index)

      Description copied from interface: `IFormatReader`
      Returns the series corresponding to the specified core index.
      Specified by:
        `coreIndexToSeries` in interface `IFormatReader`
      Overrides:
        `coreIndexToSeries` in class `FormatReader`

    - #### getResolutionCount

          public int getResolutionCount()

      Description copied from interface: `IPyramidHandler`
      Return the number of resolutions for the current series. Resolutions are stored in descending order, so the largest resolution is first and the smallest resolution is last.
      Specified by:
        `getResolutionCount` in interface `IPyramidHandler`
      Overrides:
        `getResolutionCount` in class `FormatReader`

    - #### setResolution

          public void setResolution(int no)

      Description copied from interface: `IPyramidHandler`
      Set the resolution level.
      Specified by:
        `setResolution` in interface `IPyramidHandler`
      Overrides:
        `setResolution` in class `FormatReader`
      See Also:
        `IPyramidHandler.getResolutionCount()`

    - #### getResolution

          public int getResolution()

      Description copied from interface: `IPyramidHandler`
      Get the current resolution level.
      Specified by:
        `getResolution` in interface `IPyramidHandler`
      Overrides:
        `getResolution` in class `FormatReader`
      See Also:
        `IPyramidHandler.getResolutionCount()`

    - #### getNativeDataType

          public java.lang.Class<?> getNativeDataType()

      Description copied from interface: `IFormatHandler`
      Returns the native data type of image planes for this reader, as returned by `IFormatReader.openPlane(int, int, int, int, int)` or `IFormatWriter.savePlane(int, java.lang.Object)`. For most readers this type will be a byte array; however, some readers call external APIs that work with other types such as `BufferedImage`.
      Specified by:
        `getNativeDataType` in interface `IFormatHandler`
      Overrides:
        `getNativeDataType` in class `FormatHandler`

    - #### close

          public void close()
                     throws java.io.IOException

      Specified by:
        `close` in interface `java.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Overrides:
        `close` in class `FormatReader`
      Throws:
        `java.io.IOException`

    - #### callDeferredSetters

          protected void callDeferredSetters(ReaderWrapper helper)

      A helper may not exist before initFile() is called. This mean setters that would otherwise be called on the helper are instead called on this wrapper, and can be passed to the helper by calling this method
      Parameters:
        `helper` - The wrapped helper

Copyright © 2026 Open Microscopy Environment