Skip to content

Commit

Permalink
Use AbstractWriter's Metadata setter/accessor
Browse files Browse the repository at this point in the history
By caching a local Metadata field in setMetadata but not passing it to
the abstract superclass, and not providing a getMetadata implementation,
the getMetadata method would always return null.

Instead we perform our validation in setMetadata and then defer to
super.setMetadata, so that getMetadata will just do the right thing.
  • Loading branch information
hinerm committed Mar 4, 2015
1 parent c444503 commit c423235
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions src/main/java/io/scif/formats/ImarisFormat.java
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,6 @@ protected String[] makeSuffixArray() {

public static class Writer extends AbstractWriter<DefaultMetadata> {

private Metadata metadata;

private ImarisWriter imsWriter;
private String path;
private int bitDepth;
Expand All @@ -94,7 +92,6 @@ public static class Writer extends AbstractWriter<DefaultMetadata> {
// writer.setDest(destination, config);
@Override
public void setMetadata(final Metadata meta) throws FormatException {
metadata = meta;
// read metadata for writer initialization
bitDepth = meta.get(0).getBitsPerPixel();
sizeX = meta.get(0).getAxisLength(Axes.X);
Expand All @@ -110,6 +107,8 @@ public void setMetadata(final Metadata meta) throws FormatException {
pixelSizeXY = FormatTools.getScale(meta, 0, Axes.X);
pixelSizeZ = FormatTools.getScale(meta, 0, Axes.Z);

super.setMetadata(meta);

// if (metadata != null && metadata != meta) {
// try {
// metadata.close();
Expand Down Expand Up @@ -202,7 +201,7 @@ protected void initialize(final int imageIndex, final long planeIndex,
public void savePlane(final int imageIndex, final long planeIndex,
final Plane plane) throws FormatException, IOException
{
final long[] planeMax = metadata.get(imageIndex).getAxesLengthsPlanar();
final long[] planeMax = getMetadata().get(imageIndex).getAxesLengthsPlanar();
final long[] planeMin = new long[planeMax.length];
savePlane(imageIndex, planeIndex, plane, planeMin, planeMax);
}
Expand All @@ -223,7 +222,7 @@ public void writePlane(final int imageIndex, final long planeIndex,
final Plane plane, final long[] planeMin, final long[] planeMax)
throws FormatException, IOException
{
if (!SCIFIOMetadataTools.wholePlane(imageIndex, metadata, planeMin,
if (!SCIFIOMetadataTools.wholePlane(imageIndex, getMetadata(), planeMin,
planeMax))
{
throw new FormatException(
Expand Down

0 comments on commit c423235

Please sign in to comment.