11package dev .zarr .zarrjava .v2 ;
22
33import com .fasterxml .jackson .databind .ObjectMapper ;
4+ import com .fasterxml .jackson .datatype .jdk8 .Jdk8Module ;
45import dev .zarr .zarrjava .ZarrException ;
56import dev .zarr .zarrjava .store .StoreHandle ;
67import dev .zarr .zarrjava .utils .Utils ;
7- import dev .zarr .zarrjava .v3 .codec .CodecPipeline ;
8- import dev .zarr .zarrjava .v3 .codec .Codec ;
8+ import dev .zarr .zarrjava .codec .CodecPipeline ;
9+ import dev .zarr .zarrjava .v2 .codec .Codec ;
10+ import dev .zarr .zarrjava .v2 .codec .CodecRegistry ;
911import dev .zarr .zarrjava .v3 .codec .core .BytesCodec ;
1012
1113import javax .annotation .Nonnull ;
1517import java .util .function .Function ;
1618import java .util .stream .Collectors ;
1719
18- import static dev .zarr .zarrjava .v3 .Node .makeObjectMapper ;
19-
2020public class Array implements dev .zarr .zarrjava .interfaces .Array {
2121
2222 static final String ZARRAY = ".zarray" ;
@@ -28,8 +28,9 @@ protected Array(StoreHandle storeHandle, ArrayMetadata arrayMetadata) throws IOE
2828 this .storeHandle = storeHandle ;
2929 this .metadata = arrayMetadata ;
3030 this .codecPipeline = new CodecPipeline (Utils .concatArrays (
31- metadata .filters ,
32- new Codec []{new BytesCodec (arrayMetadata .endianness .toEndian ())},
31+ new dev .zarr .zarrjava .codec .Codec []{},
32+ metadata .filters == null ? new Codec []{} : metadata .filters ,
33+ new dev .zarr .zarrjava .codec .Codec []{new BytesCodec (arrayMetadata .endianness .toEndian ())},
3334 metadata .compressor == null ? new Codec []{} : new Codec []{metadata .compressor }
3435 ), metadata .coreArrayMetadata );
3536 }
@@ -52,6 +53,14 @@ public static Array open(StoreHandle storeHandle) throws IOException, ZarrExcept
5253 );
5354 }
5455
56+ public static ObjectMapper makeObjectMapper () {
57+ ObjectMapper objectMapper = new ObjectMapper ();
58+ objectMapper .registerModule (new Jdk8Module ());
59+ objectMapper .registerSubtypes (CodecRegistry .getNamedTypes ());
60+ return objectMapper ;
61+ }
62+
63+
5564 /**
5665 * Creates a new Zarr array with the provided metadata at a specified storage location. This
5766 * method will raise an exception if a Zarr array already exists at the specified storage
0 commit comments