Skip to content

Commit

Permalink
Modify parseOmeroMetadata method in ZarrReader.java to handle typ…
Browse files Browse the repository at this point in the history
…e conversion properly.

* Use `Number` type to handle both `Integer` and `Double`.
* Convert `Number` to `Double` using `Number.doubleValue()`.
  • Loading branch information
dominikl committed Dec 5, 2024
1 parent 680d7ac commit f0e4caf
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions src/loci/formats/in/ZarrReader.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

package loci.formats.in;

/*-
Expand Down Expand Up @@ -898,7 +897,7 @@ private void parseImageLabels(String root, Map<String, Object> attr) throws IOEx
for (int p = 0; p < properties.size(); p++) {
Map<String, Object> prop = (Map<String, Object>) properties.get(p);
Integer labelValue = (Integer) prop.get("label-value");
Double area = (Double) prop.get("area (pixels)");
Number area = (Number) prop.get("area (pixels)");
String propClass = (String) prop.get("class");
}
}
Expand All @@ -925,17 +924,17 @@ public void parseOmeroMetadata(Map<String, Object> attr) throws IOException, For
for (int i = 0; i < channels.size(); i++) {
Map<String, Object> channel = (Map<String, Object>) channels.get(i);
Boolean channelActive = (Boolean) channel.get("active");
Double channelCoefficient = (Double) channel.get("coefficient");
Number channelCoefficient = (Number) channel.get("coefficient");
String channelColor = (String) channel.get("color");
String channelFamily = (String) channel.get("family");
Boolean channelInverted = (Boolean) channel.get("inverted");
String channelLabel = (String) channel.get("label");
Map<String, Object> window = (Map<String, Object>)channel.get("window");
if (window != null) {
Double windowStart = getDouble(window, "start");
Double windowEnd = getDouble(window, "end");
Double windowMin = getDouble(window, "min");
Double windowMax = getDouble(window, "max");
Number windowStart = getDouble(window, "start");
Number windowEnd = getDouble(window, "end");
Number windowMin = getDouble(window, "min");
Number windowMax = getDouble(window, "max");
}
}
Map<String, Object> rdefs = (Map<String, Object>)omeroMetadata.get("rdefs");
Expand Down Expand Up @@ -1107,7 +1106,7 @@ public static String getRowString(int rowIndex) {
return sb.reverse().toString();
}

private Double getDouble(Map<String, Object> src, String key) {
private Number getDouble(Map<String, Object> src, String key) {
Number val = (Number) src.get(key);
if (val == null) {
return null;
Expand Down

0 comments on commit f0e4caf

Please sign in to comment.