You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@baremaps.apache.org by bc...@apache.org on 2023/10/27 10:11:57 UTC

(incubator-baremaps) 10/11: Replace the Directories record by a class

This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a commit to branch pmtiles
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git

commit b2f99a34138779cd3e0b1bb4b9c23e742a156109
Author: Bertil Chapuis <bc...@gmail.com>
AuthorDate: Thu Oct 26 17:23:50 2023 +0200

    Replace the Directories record by a class
---
 .../pmtiles/{Entry.java => Directories.java}       | 51 ++++++----------------
 .../apache/baremaps/tilestore/pmtiles/Entry.java   |  2 +-
 .../apache/baremaps/tilestore/pmtiles/Header.java  | 32 +++++++++++---
 .../apache/baremaps/tilestore/pmtiles/PMTiles.java |  5 +--
 .../baremaps/tilestore/pmtiles/PMTilesWriter.java  |  8 ++--
 .../baremaps/tilestore/pmtiles/PMTilesTest.java    | 12 ++---
 6 files changed, 51 insertions(+), 59 deletions(-)

diff --git a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Entry.java b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Directories.java
similarity index 51%
copy from baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Entry.java
copy to baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Directories.java
index 1d377843..ea91b1fa 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Entry.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Directories.java
@@ -17,50 +17,27 @@
 
 package org.apache.baremaps.tilestore.pmtiles;
 
-public class Entry {
-  private long tileId;
-  private long offset;
-  private long length;
-  private long runLength;
+class Directories {
 
-  public Entry() {}
+  private final byte[] root;
+  private final byte[] leaves;
+  private final int numLeaves;
 
-  public Entry(long tileId, long offset, long length, long runLength) {
-    this.tileId = tileId;
-    this.offset = offset;
-    this.length = length;
-    this.runLength = runLength;
+  public Directories(byte[] root, byte[] leaves, int numLeaves) {
+    this.root = root;
+    this.leaves = leaves;
+    this.numLeaves = numLeaves;
   }
 
-  public long getTileId() {
-    return tileId;
+  public byte[] getRoot() {
+    return root;
   }
 
-  public void setTileId(long tileId) {
-    this.tileId = tileId;
+  public byte[] getLeaves() {
+    return leaves;
   }
 
-  public long getOffset() {
-    return offset;
-  }
-
-  public void setOffset(long offset) {
-    this.offset = offset;
-  }
-
-  public long getLength() {
-    return length;
-  }
-
-  public void setLength(long length) {
-    this.length = length;
-  }
-
-  public long getRunLength() {
-    return runLength;
-  }
-
-  public void setRunLength(long runLength) {
-    this.runLength = runLength;
+  public int getNumLeaves() {
+    return numLeaves;
   }
 }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Entry.java b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Entry.java
index 1d377843..a8b0947e 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Entry.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Entry.java
@@ -17,7 +17,7 @@
 
 package org.apache.baremaps.tilestore.pmtiles;
 
-public class Entry {
+class Entry {
   private long tileId;
   private long offset;
   private long length;
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Header.java b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Header.java
index 432f73df..b1e3bddf 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Header.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/Header.java
@@ -19,7 +19,7 @@ package org.apache.baremaps.tilestore.pmtiles;
 
 import java.util.Objects;
 
-public class Header {
+class Header {
 
   private int specVersion;
   private long rootDirectoryOffset;
@@ -51,12 +51,30 @@ public class Header {
     this.specVersion = 3;
   }
 
-  public Header(int specVersion, long rootDirectoryOffset, long rootDirectoryLength,
-      long jsonMetadataOffset, long jsonMetadataLength, long leafDirectoryOffset,
-      long leafDirectoryLength, long tileDataOffset, long tileDataLength, long numAddressedTiles,
-      long numTileEntries, long numTileContents, boolean clustered, Compression internalCompression,
-      Compression tileCompression, TileType tileType, int minZoom, int maxZoom, double minLon,
-      double minLat, double maxLon, double maxLat, int centerZoom, double centerLon,
+  public Header(
+      int specVersion,
+      long rootDirectoryOffset,
+      long rootDirectoryLength,
+      long jsonMetadataOffset,
+      long jsonMetadataLength,
+      long leafDirectoryOffset,
+      long leafDirectoryLength,
+      long tileDataOffset,
+      long tileDataLength,
+      long numAddressedTiles,
+      long numTileEntries,
+      long numTileContents,
+      boolean clustered,
+      Compression internalCompression,
+      Compression tileCompression,
+      TileType tileType,
+      int minZoom,
+      int maxZoom,
+      double minLon,
+      double minLat, double maxLon,
+      double maxLat,
+      int centerZoom,
+      double centerLon,
       double centerLat) {
     this.specVersion = specVersion;
     this.rootDirectoryOffset = rootDirectoryOffset;
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/PMTiles.java b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/PMTiles.java
index 266dd90d..53ac3db7 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/PMTiles.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/PMTiles.java
@@ -329,9 +329,6 @@ public class PMTiles {
     return null;
   }
 
-  record Directories(byte[] root, byte[] leaves, int numLeaves) {
-  }
-
   public static Directories buildRootLeaves(List<Entry> entries, int leafSize) throws IOException {
     var rootEntries = new ArrayList<Entry>();
     var numLeaves = 0;
@@ -385,7 +382,7 @@ public class PMTiles {
     }
     for (;;) {
       var directories = buildRootLeaves(entries, (int) leafSize);
-      if (directories.root.length <= targetRootLenght) {
+      if (directories.getRoot().length <= targetRootLenght) {
         return directories;
       }
       leafSize = leafSize * 1.2;
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/PMTilesWriter.java b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/PMTilesWriter.java
index 5a6e6a4a..66566dff 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/PMTilesWriter.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/pmtiles/PMTilesWriter.java
@@ -110,11 +110,11 @@ public class PMTilesWriter {
 
     var directories = PMTiles.optimizeDirectories(entries, 16247);
     var rootOffset = 127;
-    var rootLength = directories.root().length;
+    var rootLength = directories.getRoot().length;
     var metadataOffset = rootOffset + rootLength;
     var metadataLength = metadataBytes.length;
     var leavesOffset = metadataOffset + metadataLength;
-    var leavesLength = directories.leaves().length;
+    var leavesLength = directories.getLeaves().length;
     var tilesOffset = leavesOffset + leavesLength;
     var tilesLength = Files.size(tilePath);
     var numTiles = entries.size();
@@ -149,9 +149,9 @@ public class PMTilesWriter {
 
     try (var output = new LittleEndianDataOutputStream(new FileOutputStream(path.toFile()))) {
       PMTiles.serializeHeader(output, header);
-      output.write(directories.root());
+      output.write(directories.getRoot());
       output.write(metadataBytes);
-      output.write(directories.leaves());
+      output.write(directories.getLeaves());
       Files.copy(tilePath, output);
     } finally {
       Files.delete(tilePath);
diff --git a/baremaps-core/src/test/java/org/apache/baremaps/tilestore/pmtiles/PMTilesTest.java b/baremaps-core/src/test/java/org/apache/baremaps/tilestore/pmtiles/PMTilesTest.java
index 98fd9035..7de357cb 100644
--- a/baremaps-core/src/test/java/org/apache/baremaps/tilestore/pmtiles/PMTilesTest.java
+++ b/baremaps-core/src/test/java/org/apache/baremaps/tilestore/pmtiles/PMTilesTest.java
@@ -262,7 +262,7 @@ class PMTilesTest {
   void buildRootLeaves() throws IOException {
     var entries = List.of(new Entry(100, 1, 1, 0));
     var directories = PMTiles.buildRootLeaves(entries, 1);
-    assertEquals(directories.numLeaves(), 1);
+    assertEquals(directories.getNumLeaves(), 1);
 
   }
 
@@ -272,8 +272,8 @@ class PMTilesTest {
     var entries = new ArrayList<Entry>();
     entries.add(new Entry(0, 0, 100, 1));
     var directories = PMTiles.optimizeDirectories(entries, 100);
-    assertFalse(directories.leaves().length > 0);
-    assertEquals(0, directories.numLeaves());
+    assertFalse(directories.getLeaves().length > 0);
+    assertEquals(0, directories.getNumLeaves());
 
     entries = new ArrayList<>();
     int offset = 0;
@@ -283,8 +283,8 @@ class PMTilesTest {
       offset += randTileSize;
     }
     directories = PMTiles.optimizeDirectories(entries, 1024);
-    assertFalse(directories.root().length > 1024);
-    assertFalse(directories.numLeaves() == 0);
-    assertFalse(directories.leaves().length == 0);
+    assertFalse(directories.getRoot().length > 1024);
+    assertFalse(directories.getNumLeaves() == 0);
+    assertFalse(directories.getLeaves().length == 0);
   }
 }