@@ -120,6 +120,7 @@ public class LeicaHandler extends BaseHandler {
120
120
private MetadataLevel level ;
121
121
private int laserCount = 0 ;
122
122
123
+ private boolean setPlaneMetadataInStore = true ;
123
124
private Map <String , Time > exposureTimes = new HashMap <String , Time >();
124
125
private Map <String , Time > deltaT = new HashMap <String , Time >();
125
126
@@ -139,6 +140,11 @@ public LeicaHandler(MetadataStore store, MetadataLevel level) {
139
140
this .level = level ;
140
141
}
141
142
143
+ public LeicaHandler (MetadataStore store , MetadataLevel level , boolean planesInStore ) {
144
+ this (store , level );
145
+ setPlaneMetadataInStore = planesInStore ;
146
+ }
147
+
142
148
// -- LeicaHandler API methods --
143
149
144
150
public List <CoreMetadata > getCoreMetadataList () { return core ; }
@@ -556,7 +562,13 @@ else if (id.indexOf("WFC") == 1) {
556
562
try {
557
563
Double exposureTime = DataTools .parseDouble (value );
558
564
if (exposureTime != null ) {
559
- exposureTimes .put (numDatasets + "-" + c , new Time (exposureTime , UNITS .SECOND ));
565
+ Time expTime = new Time (exposureTime , UNITS .SECOND );
566
+ if (setPlaneMetadataInStore ) {
567
+ store .setPlaneExposureTime (expTime , numDatasets , c );
568
+ }
569
+ else {
570
+ exposureTimes .put (numDatasets + "-" + c , expTime );
571
+ }
560
572
}
561
573
}
562
574
catch (IndexOutOfBoundsException e ) { }
@@ -885,14 +897,28 @@ else if (qName.equals("TimeStamp") && numDatasets >= 0) {
885
897
store .setImageAcquisitionDate (new Timestamp (date ), numDatasets );
886
898
}
887
899
firstStamp = ms ;
888
- deltaT .put (numDatasets + "-" + count , new Time (0.0 , UNITS .SECOND ));
900
+
901
+ Time stamp = new Time (0.0 , UNITS .SECOND );
902
+ if (setPlaneMetadataInStore ) {
903
+ store .setPlaneDeltaT (stamp , numDatasets , count );
904
+ }
905
+ else {
906
+ deltaT .put (numDatasets + "-" + count , stamp );
907
+ }
889
908
}
890
909
else if (level != MetadataLevel .MINIMUM ) {
891
910
CoreMetadata coreMeta = core .get (numDatasets );
892
911
int nImages = coreMeta .sizeZ * coreMeta .sizeT * coreMeta .sizeC ;
893
912
if (count < nImages ) {
894
913
ms -= firstStamp ;
895
- deltaT .put (numDatasets + "-" + count , new Time (ms / 1000.0 , UNITS .SECOND ));
914
+
915
+ Time stamp = new Time (ms / 1000.00 , UNITS .SECOND );
916
+ if (setPlaneMetadataInStore ) {
917
+ store .setPlaneDeltaT (stamp , numDatasets , count );
918
+ }
919
+ else {
920
+ deltaT .put (numDatasets + "-" + count , stamp );
921
+ }
896
922
}
897
923
}
898
924
@@ -904,7 +930,14 @@ else if (qName.equals("RelTimeStamp") && level != MetadataLevel.MINIMUM) {
904
930
if (count < nImages ) {
905
931
Double time = DataTools .parseDouble (attributes .getValue ("Time" ));
906
932
if (time != null ) {
907
- deltaT .put (numDatasets + "-" + count , new Time (time , UNITS .SECOND ));
933
+ Time stamp = new Time (time , UNITS .SECOND );
934
+ if (setPlaneMetadataInStore ) {
935
+ store .setPlaneDeltaT (stamp , numDatasets , count );
936
+ }
937
+ else {
938
+ deltaT .put (numDatasets + "-" + count , stamp );
939
+ }
940
+
908
941
count ++;
909
942
}
910
943
}
0 commit comments