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 <[email protected]> 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); } }
