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);
}
}