Skip to content

Commit 73b100a

Browse files
committed
Modify parseOmeroMetadata method in ZarrReader.java to handle type conversion properly.
* Use `Number` type to handle both `Integer` and `Double`. * Convert `Number` to `Double` using `Number.doubleValue()`.
1 parent 0890173 commit 73b100a

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/loci/formats/in/ZarrReader.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
package loci.formats.in;
32

43
/*-
@@ -898,7 +897,7 @@ private void parseImageLabels(String root, Map<String, Object> attr) throws IOEx
898897
for (int p = 0; p < properties.size(); p++) {
899898
Map<String, Object> prop = (Map<String, Object>) properties.get(p);
900899
Integer labelValue = (Integer) prop.get("label-value");
901-
Double area = (Double) prop.get("area (pixels)");
900+
Number area = (Number) prop.get("area (pixels)");
902901
String propClass = (String) prop.get("class");
903902
}
904903
}
@@ -925,17 +924,17 @@ public void parseOmeroMetadata(Map<String, Object> attr) throws IOException, For
925924
for (int i = 0; i < channels.size(); i++) {
926925
Map<String, Object> channel = (Map<String, Object>) channels.get(i);
927926
Boolean channelActive = (Boolean) channel.get("active");
928-
Double channelCoefficient = (Double) channel.get("coefficient");
927+
Number channelCoefficient = (Number) channel.get("coefficient");
929928
String channelColor = (String) channel.get("color");
930929
String channelFamily = (String) channel.get("family");
931930
Boolean channelInverted = (Boolean) channel.get("inverted");
932931
String channelLabel = (String) channel.get("label");
933932
Map<String, Object> window = (Map<String, Object>)channel.get("window");
934933
if (window != null) {
935-
Double windowStart = getDouble(window, "start");
936-
Double windowEnd = getDouble(window, "end");
937-
Double windowMin = getDouble(window, "min");
938-
Double windowMax = getDouble(window, "max");
934+
Number windowStart = getDouble(window, "start");
935+
Number windowEnd = getDouble(window, "end");
936+
Number windowMin = getDouble(window, "min");
937+
Number windowMax = getDouble(window, "max");
939938
}
940939
}
941940
Map<String, Object> rdefs = (Map<String, Object>)omeroMetadata.get("rdefs");
@@ -1107,7 +1106,7 @@ public static String getRowString(int rowIndex) {
11071106
return sb.reverse().toString();
11081107
}
11091108

1110-
private Double getDouble(Map<String, Object> src, String key) {
1109+
private Number getDouble(Map<String, Object> src, String key) {
11111110
Number val = (Number) src.get(key);
11121111
if (val == null) {
11131112
return null;

0 commit comments

Comments
 (0)