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 2022/11/22 15:22:57 UTC
[incubator-baremaps] 05/07: Replace classes with records
This is an automated email from the ASF dual-hosted git repository.
bchapuis pushed a commit to branch instanceof
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git
commit f4ee9ab02092913b212c8597c90297ddde8110d5
Author: Bertil Chapuis <bc...@gmail.com>
AuthorDate: Tue Nov 22 14:02:39 2022 +0100
Replace classes with records
---
.../org/apache/baremaps/database/DiffService.java | 6 +-
.../baremaps/database/SaveChangeConsumer.java | 4 +-
.../repository/PostgresNodeRepository.java | 16 ++---
.../repository/PostgresRelationRepository.java | 29 ++++----
.../database/repository/PostgresWayRepository.java | 16 ++---
.../function/ChangeEntitiesConsumer.java | 2 +-
.../function/CreateGeometryConsumer.java | 6 +-
.../apache/baremaps/openstreetmap/model/Blob.java | 37 +---------
.../apache/baremaps/openstreetmap/model/Block.java | 24 +------
.../apache/baremaps/openstreetmap/model/Bound.java | 61 +----------------
.../baremaps/openstreetmap/model/Change.java | 38 +----------
.../baremaps/openstreetmap/model/DataBlock.java | 25 +------
.../baremaps/openstreetmap/model/Element.java | 1 -
.../baremaps/openstreetmap/model/Header.java | 26 +------
.../baremaps/openstreetmap/model/HeaderBlock.java | 19 +-----
.../apache/baremaps/openstreetmap/model/Info.java | 61 +----------------
.../baremaps/openstreetmap/model/Member.java | 79 +++++-----------------
.../apache/baremaps/openstreetmap/model/User.java | 34 +---------
.../openstreetmap/pbf/DataBlockReader.java | 2 +-
.../openstreetmap/pbf/HeaderBlockReader.java | 2 +-
.../baremaps/openstreetmap/OpenStreetMapTest.java | 8 +--
.../xml/XmlChangeSpliteratorTest.java | 2 +-
22 files changed, 74 insertions(+), 424 deletions(-)
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/database/DiffService.java b/baremaps-core/src/main/java/org/apache/baremaps/database/DiffService.java
index 14056fc3..824d46ca 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/database/DiffService.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/database/DiffService.java
@@ -95,7 +95,7 @@ public class DiffService implements Callable<List<Tile>> {
}
private Stream<Geometry> geometriesForChange(Change change) {
- switch (change.getType()) {
+ switch (change.type()) {
case CREATE:
return geometriesForNextVersion(change);
case DELETE:
@@ -109,7 +109,7 @@ public class DiffService implements Callable<List<Tile>> {
}
private Stream<Geometry> geometriesForPreviousVersion(Change change) {
- return change.getEntities().stream().map(this::geometriesForPreviousVersion)
+ return change.entities().stream().map(this::geometriesForPreviousVersion)
.flatMap(Optional::stream);
}
@@ -133,7 +133,7 @@ public class DiffService implements Callable<List<Tile>> {
}
private Stream<Geometry> geometriesForNextVersion(Change change) {
- return change.getEntities().stream()
+ return change.entities().stream()
.map(consumeThenReturn(new CreateGeometryConsumer(coordinates, references)))
.flatMap(new ExtractGeometryFunction().andThen(Optional::stream));
}
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/database/SaveChangeConsumer.java b/baremaps-core/src/main/java/org/apache/baremaps/database/SaveChangeConsumer.java
index 59e4a805..fcd5c98a 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/database/SaveChangeConsumer.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/database/SaveChangeConsumer.java
@@ -49,8 +49,8 @@ public class SaveChangeConsumer implements Consumer<Change> {
@Override
public void accept(Change change) {
try {
- for (Entity entity : change.getEntities()) {
- switch (change.getType()) {
+ for (Entity entity : change.entities()) {
+ switch (change.type()) {
case CREATE:
case MODIFY:
if (entity instanceof Node node) {
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresNodeRepository.java b/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresNodeRepository.java
index 726c4d0b..5730ea0c 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresNodeRepository.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresNodeRepository.java
@@ -271,10 +271,10 @@ public class PostgresNodeRepository implements Repository<Long, Node> {
for (Node value : values) {
writer.startRow(9);
writer.writeLong(value.getId());
- writer.writeInteger(value.getInfo().getVersion());
- writer.writeInteger(value.getInfo().getUid());
- writer.writeLocalDateTime(value.getInfo().getTimestamp());
- writer.writeLong(value.getInfo().getChangeset());
+ writer.writeInteger(value.getInfo().version());
+ writer.writeInteger(value.getInfo().uid());
+ writer.writeLocalDateTime(value.getInfo().timestamp());
+ writer.writeLong(value.getInfo().changeset());
writer.writeJsonb(PostgresJsonbMapper.toJson(value.getTags()));
writer.writeDouble(value.getLon());
writer.writeDouble(value.getLat());
@@ -303,10 +303,10 @@ public class PostgresNodeRepository implements Repository<Long, Node> {
private void setValue(PreparedStatement statement, Node value)
throws SQLException, JsonProcessingException {
statement.setObject(1, value.getId());
- statement.setObject(2, value.getInfo().getVersion());
- statement.setObject(3, value.getInfo().getUid());
- statement.setObject(4, value.getInfo().getTimestamp());
- statement.setObject(5, value.getInfo().getChangeset());
+ statement.setObject(2, value.getInfo().version());
+ statement.setObject(3, value.getInfo().uid());
+ statement.setObject(4, value.getInfo().timestamp());
+ statement.setObject(5, value.getInfo().changeset());
statement.setObject(6, PostgresJsonbMapper.toJson(value.getTags()));
statement.setObject(7, value.getLon());
statement.setObject(8, value.getLat());
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresRelationRepository.java b/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresRelationRepository.java
index d18411af..e9d25c8c 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresRelationRepository.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresRelationRepository.java
@@ -283,17 +283,16 @@ public class PostgresRelationRepository implements Repository<Long, Relation> {
for (Relation value : values) {
writer.startRow(10);
writer.writeLong(value.getId());
- writer.writeInteger(value.getInfo().getVersion());
- writer.writeInteger(value.getInfo().getUid());
- writer.writeLocalDateTime(value.getInfo().getTimestamp());
- writer.writeLong(value.getInfo().getChangeset());
+ writer.writeInteger(value.getInfo().version());
+ writer.writeInteger(value.getInfo().uid());
+ writer.writeLocalDateTime(value.getInfo().timestamp());
+ writer.writeLong(value.getInfo().changeset());
writer.writeJsonb(toJson(value.getTags()));
writer.writeLongList(
- value.getMembers().stream().map(Member::getRef).collect(Collectors.toList()));
- writer.writeIntegerList(value.getMembers().stream().map(Member::getType)
+ value.getMembers().stream().map(Member::ref).collect(Collectors.toList()));
+ writer.writeIntegerList(value.getMembers().stream().map(Member::type)
.map(MemberType::ordinal).collect(Collectors.toList()));
- writer
- .write(value.getMembers().stream().map(Member::getRole).collect(Collectors.toList()));
+ writer.write(value.getMembers().stream().map(Member::role).collect(Collectors.toList()));
writer.writePostgisGeometry(value.getGeometry());
}
}
@@ -324,17 +323,17 @@ public class PostgresRelationRepository implements Repository<Long, Relation> {
private void setValue(PreparedStatement statement, Relation value)
throws SQLException, JsonProcessingException {
statement.setObject(1, value.getId());
- statement.setObject(2, value.getInfo().getVersion());
- statement.setObject(3, value.getInfo().getUid());
- statement.setObject(4, value.getInfo().getTimestamp());
- statement.setObject(5, value.getInfo().getChangeset());
+ statement.setObject(2, value.getInfo().version());
+ statement.setObject(3, value.getInfo().uid());
+ statement.setObject(4, value.getInfo().timestamp());
+ statement.setObject(5, value.getInfo().changeset());
statement.setObject(6, toJson(value.getTags()));
- Object[] refs = value.getMembers().stream().map(Member::getRef).toArray();
+ Object[] refs = value.getMembers().stream().map(Member::ref).toArray();
statement.setObject(7, statement.getConnection().createArrayOf("bigint", refs));
Object[] types =
- value.getMembers().stream().map(Member::getType).map(MemberType::ordinal).toArray();
+ value.getMembers().stream().map(Member::type).map(MemberType::ordinal).toArray();
statement.setObject(8, statement.getConnection().createArrayOf("int", types));
- Object[] roles = value.getMembers().stream().map(Member::getRole).toArray();
+ Object[] roles = value.getMembers().stream().map(Member::role).toArray();
statement.setObject(9, statement.getConnection().createArrayOf("varchar", roles));
statement.setBytes(10, GeometryUtils.serialize(value.getGeometry()));
}
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresWayRepository.java b/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresWayRepository.java
index a198458a..ff8120f6 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresWayRepository.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/database/repository/PostgresWayRepository.java
@@ -273,10 +273,10 @@ public class PostgresWayRepository implements Repository<Long, Way> {
for (Way value : values) {
writer.startRow(8);
writer.writeLong(value.getId());
- writer.writeInteger(value.getInfo().getVersion());
- writer.writeInteger(value.getInfo().getUid());
- writer.writeLocalDateTime(value.getInfo().getTimestamp());
- writer.writeLong(value.getInfo().getChangeset());
+ writer.writeInteger(value.getInfo().version());
+ writer.writeInteger(value.getInfo().uid());
+ writer.writeLocalDateTime(value.getInfo().timestamp());
+ writer.writeLong(value.getInfo().changeset());
writer.writeJsonb(PostgresJsonbMapper.toJson(value.getTags()));
writer.writeLongList(value.getNodes());
writer.writePostgisGeometry(value.getGeometry());
@@ -307,10 +307,10 @@ public class PostgresWayRepository implements Repository<Long, Way> {
private void setValue(PreparedStatement statement, Way value)
throws SQLException, JsonProcessingException {
statement.setObject(1, value.getId());
- statement.setObject(2, value.getInfo().getVersion());
- statement.setObject(3, value.getInfo().getUid());
- statement.setObject(4, value.getInfo().getTimestamp());
- statement.setObject(5, value.getInfo().getChangeset());
+ statement.setObject(2, value.getInfo().version());
+ statement.setObject(3, value.getInfo().uid());
+ statement.setObject(4, value.getInfo().timestamp());
+ statement.setObject(5, value.getInfo().changeset());
statement.setObject(6, PostgresJsonbMapper.toJson(value.getTags()));
statement.setObject(7, value.getNodes().stream().mapToLong(Long::longValue).toArray());
statement.setBytes(8, GeometryUtils.serialize(value.getGeometry()));
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/function/ChangeEntitiesConsumer.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/function/ChangeEntitiesConsumer.java
index 85928875..9fb9e79d 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/function/ChangeEntitiesConsumer.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/function/ChangeEntitiesConsumer.java
@@ -36,6 +36,6 @@ public class ChangeEntitiesConsumer implements Consumer<Change> {
/** {@inheritDoc} */
@Override
public void accept(Change change) {
- change.getEntities().forEach(consumer);
+ change.entities().forEach(consumer);
}
}
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/function/CreateGeometryConsumer.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/function/CreateGeometryConsumer.java
index 4d1f0595..389d4fc4 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/function/CreateGeometryConsumer.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/function/CreateGeometryConsumer.java
@@ -186,8 +186,8 @@ public class CreateGeometryConsumer implements Consumer<Entity> {
private Set<Polygon> createPolygons(Relation relation, String role) {
Set<Polygon> polygons = new HashSet<>();
LineMerger lineMerger = new LineMerger();
- relation.getMembers().stream().filter(m -> Member.MemberType.WAY.equals(m.getType()))
- .filter(m -> role.equals(m.getRole())).forEach(member -> {
+ relation.getMembers().stream().filter(m -> Member.MemberType.WAY.equals(m.type()))
+ .filter(m -> role.equals(m.role())).forEach(member -> {
LineString line = createLine(member);
if (line.isClosed()) {
Polygon polygon = geometryFactory.createPolygon(line.getCoordinates());
@@ -208,7 +208,7 @@ public class CreateGeometryConsumer implements Consumer<Entity> {
private LineString createLine(Member member) {
try {
- List<Long> refs = this.references.get(member.getRef());
+ List<Long> refs = this.references.get(member.ref());
List<Coordinate> coords = refs.stream().map(coordinates::get).toList();
Coordinate[] array = coords.toArray(new Coordinate[coords.size()]);
return geometryFactory.createLineString(array);
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Blob.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Blob.java
index e3974a32..bac41042 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Blob.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Blob.java
@@ -23,33 +23,7 @@ import org.apache.baremaps.osm.binary.Fileformat;
import org.apache.baremaps.osm.binary.Fileformat.BlobHeader;
/** Represents a raw blob of data in an OpenStreetMap dataset. */
-public class Blob {
-
- private final BlobHeader header;
- private final byte[] rawData;
- private final int size;
-
- /**
- * Constructs a OpenStreetMap {@code Blob}.
- *
- * @param header the header
- * @param rawData the raw data
- * @param size the size
- */
- public Blob(BlobHeader header, byte[] rawData, int size) {
- this.header = header;
- this.rawData = rawData;
- this.size = size;
- }
-
- /**
- * Returns the header.
- *
- * @return the header
- */
- public BlobHeader header() {
- return header;
- }
+public record Blob (BlobHeader header, byte[] rawData, int size) {
/**
* Returns the data.
@@ -74,15 +48,6 @@ public class Blob {
}
}
- /**
- * Returns the size.
- *
- * @return the size
- */
- public long size() {
- return size;
- }
-
/** {@inheritDoc} */
@Override
public String toString() {
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Block.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Block.java
index 5a3d6cf6..6c32b173 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Block.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Block.java
@@ -14,29 +14,9 @@ package org.apache.baremaps.openstreetmap.model;
/** Represents a block of data in an OpenStreetMap dataset. */
-public abstract sealed
-class Block
+public sealed
+interface Block
permits HeaderBlock, DataBlock
{
- private final Blob blob;
-
- /**
- * Constructs an OpenStreetMap {@code Block} with the specified {@code Blob}.
- *
- * @param blob the blob
- */
- protected Block(Blob blob) {
- this.blob = blob;
- }
-
- /**
- * Returns the blob.
- *
- * @return the blob
- */
- public Blob getBlob() {
- return blob;
- }
-
}
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Bound.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Bound.java
index d6358ac7..37c5f9b8 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Bound.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Bound.java
@@ -18,66 +18,7 @@ import java.util.Objects;
import java.util.StringJoiner;
/** Represents the bounds of an OpenStreetMap dataset. */
-public final class Bound implements Entity {
-
- private final double maxLat;
-
- private final double maxLon;
-
- private final double minLat;
-
- private final double minLon;
-
- /**
- * Consturcts a {@code Bound} with the specified limits.
- *
- * @param maxLat the max latitude
- * @param maxLon the max longitude
- * @param minLat the min latitude
- * @param minLon the max longitude
- */
- public Bound(double maxLat, double maxLon, double minLat, double minLon) {
- this.maxLat = maxLat;
- this.maxLon = maxLon;
- this.minLat = minLat;
- this.minLon = minLon;
- }
-
- /**
- * Returns the max latitude.
- *
- * @return the max latitude
- */
- public double getMaxLat() {
- return maxLat;
- }
-
- /**
- * Returns the max longitude.
- *
- * @return the max longitude
- */
- public double getMaxLon() {
- return maxLon;
- }
-
- /**
- * Returns the min latitude.
- *
- * @return the min latitude
- */
- public double getMinLat() {
- return minLat;
- }
-
- /**
- * Returns the min longitude.
- *
- * @return the min longitude
- */
- public double getMinLon() {
- return minLon;
- }
+public record Bound(double maxLat, double maxLon, double minLat, double minLon) implements Entity {
/** {@inheritDoc} */
@Override
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Change.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Change.java
index c8c8d354..4006e1a8 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Change.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Change.java
@@ -18,43 +18,11 @@ import java.util.List;
import java.util.StringJoiner;
/** Represents a change in an OpenStreetMap dataset. */
-public final class Change {
+public record Change(ChangeType type,List<Entity>entities){
- public enum ChangeType {
- DELETE, CREATE, MODIFY
- }
-
- private final ChangeType type;
-
- private final List<Entity> entities;
-
- /**
- * Constructs an OpenStreetMap change.
- *
- * @param type the type of the change
- * @param entities the entities affected by the change
- */
- public Change(ChangeType type, List<Entity> entities) {
- this.type = type;
- this.entities = entities;
- }
-
- /**
- * Returns the type of the change.
- *
- * @return the type of the change
- */
- public ChangeType getType() {
- return type;
- }
+public enum ChangeType {
+ DELETE, CREATE, MODIFY
- /**
- * Returns the entities affected by the change.
- *
- * @return the entities affected by the change
- */
- public List<Entity> getEntities() {
- return entities;
}
/** {@inheritDoc} */
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/DataBlock.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/DataBlock.java
index 5fa79205..4940436f 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/DataBlock.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/DataBlock.java
@@ -17,30 +17,7 @@ package org.apache.baremaps.openstreetmap.model;
import java.util.List;
/** Represents a data block in an OpenStreetMap dataset. */
-public final class DataBlock extends Block {
-
- private final List<Node> denseNodes;
- private final List<Node> nodes;
- private final List<Way> ways;
- private final List<Relation> relations;
-
- /**
- * Constructs an OpenStreetMap {@code DataBlock} with the specified parameters.
- *
- * @param blob the blob
- * @param denseNodes the dense nodes
- * @param nodes the nodes
- * @param ways the ways
- * @param relations the relations
- */
- public DataBlock(Blob blob, List<Node> denseNodes, List<Node> nodes, List<Way> ways,
- List<Relation> relations) {
- super(blob);
- this.denseNodes = denseNodes;
- this.nodes = nodes;
- this.ways = ways;
- this.relations = relations;
- }
+public record DataBlock(List<Node> denseNodes, List<Node> nodes, List<Way> ways, List<Relation> relations) implements Block {
/**
* Returns the dense nodes.
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Element.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Element.java
index 52200f87..d8b3b5e4 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Element.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Element.java
@@ -24,7 +24,6 @@ import org.locationtech.jts.geom.Geometry;
* world.
*/
public sealed
-
abstract class Element implements Entity
permits Node, Way, Relation
{
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Header.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Header.java
index 3661315d..85ff2b78 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Header.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Header.java
@@ -19,31 +19,7 @@ import java.util.Objects;
import java.util.StringJoiner;
/** Represents a header entity in an OpenStreetMap dataset. */
-public final class Header implements Entity {
-
- private final Long replicationSequenceNumber;
- private final LocalDateTime replicationTimestamp;
- private final String replicationUrl;
- private final String source;
- private final String writingProgram;
-
- /**
- * Constructs an OpenStreetMap {@code Header} based on the specified parameters.
- *
- * @param replicationSequenceNumber the replication sequence number
- * @param replicationTimestamp the replication timestamp
- * @param replicationUrl the replication url
- * @param source the source
- * @param writingProgram the writing program
- */
- public Header(Long replicationSequenceNumber, LocalDateTime replicationTimestamp,
- String replicationUrl, String source, String writingProgram) {
- this.replicationTimestamp = replicationTimestamp;
- this.replicationSequenceNumber = replicationSequenceNumber;
- this.replicationUrl = replicationUrl;
- this.source = source;
- this.writingProgram = writingProgram;
- }
+public record Header(Long replicationSequenceNumber, LocalDateTime replicationTimestamp,String replicationUrl,String source,String writingProgram) implements Entity {
/**
* Returns the replication timestamp.
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/HeaderBlock.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/HeaderBlock.java
index 69a067af..4d98efad 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/HeaderBlock.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/HeaderBlock.java
@@ -15,24 +15,7 @@ package org.apache.baremaps.openstreetmap.model;
/** Represents a header block in an OpenStreetMap dataset. */
-public final class HeaderBlock extends Block {
-
- private final Header header;
-
- private final Bound bound;
-
- /**
- * Constructs an OpenStreetMap {@code HeaderBlock} with the specified parameters.
- *
- * @param blob the blob
- * @param header the header
- * @param bound the bound
- */
- public HeaderBlock(Blob blob, Header header, Bound bound) {
- super(blob);
- this.header = header;
- this.bound = bound;
- }
+public record HeaderBlock(Header header, Bound bound) implements Block {
/**
* Returns the header.
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Info.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Info.java
index cd0bd2bc..ab62f98f 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Info.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Info.java
@@ -19,66 +19,7 @@ import java.util.Objects;
import java.util.StringJoiner;
/** Represents all the metadata associated to an element in an OpenStreetMap dataset. */
-public class Info {
-
- protected final int version;
-
- protected final LocalDateTime timestamp;
-
- protected final long changeset;
-
- protected final int uid;
-
- /**
- * Constructs an OpenStreetMap {@code Info} with the specified metadata.
- *
- * @param version the version
- * @param timestamp the timestamp
- * @param changeset the changeset
- * @param uid the user id
- */
- public Info(int version, LocalDateTime timestamp, long changeset, int uid) {
- this.version = version;
- this.timestamp = timestamp;
- this.changeset = changeset;
- this.uid = uid;
- }
-
- /**
- * Returns the version.
- *
- * @return the version
- */
- public int getVersion() {
- return version;
- }
-
- /**
- * Returns the timestamp.
- *
- * @return the timestamp
- */
- public LocalDateTime getTimestamp() {
- return timestamp;
- }
-
- /**
- * Returns the changeset.
- *
- * @return the changeset
- */
- public long getChangeset() {
- return changeset;
- }
-
- /**
- * Returns the user id.
- *
- * @return the user id
- */
- public int getUid() {
- return uid;
- }
+public record Info(int version, LocalDateTime timestamp, long changeset, int uid) {
/** {@inheritDoc} */
@Override
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Member.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Member.java
index aab6d912..e4ad3606 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Member.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/Member.java
@@ -12,77 +12,30 @@
package org.apache.baremaps.openstreetmap.model;
-import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.common.base.Objects;
import java.util.StringJoiner;
/** Represents a member of a relation in an OpenStreetMap dataset. */
-public final class Member {
-
- public enum MemberType {
- NODE, WAY, RELATION;
-
- public static MemberType forNumber(int value) {
- switch (value) {
- case 0:
- return NODE;
- case 1:
- return WAY;
- case 2:
- return RELATION;
- default:
- throw new IllegalArgumentException();
- }
+public record Member(long ref,MemberType type,String role){
+
+public enum MemberType {
+ NODE, WAY, RELATION;
+
+ public static MemberType forNumber(int value) {
+ switch (value) {
+ case 0:
+ return NODE;
+ case 1:
+ return WAY;
+ case 2:
+ return RELATION;
+ default:
+ throw new IllegalArgumentException();
}
}
- private final long ref;
-
- private final MemberType type;
-
- private final String role;
-
- /**
- * Constructs a {@code Member} of an OpenStreetMap relation.
- *
- * @param ref the relation id
- * @param type the member type
- * @param role the member role
- */
- public Member(long ref, MemberType type, String role) {
- checkNotNull(type);
- checkNotNull(role);
- this.ref = ref;
- this.type = type;
- this.role = role;
- }
-
- /**
- * Returns the relation id.
- *
- * @return the relation id
- */
- public long getRef() {
- return ref;
- }
-
- /**
- * Returns the member type.
- *
- * @return the member type
- */
- public MemberType getType() {
- return type;
- }
-
- /**
- * Returns the member role.
- *
- * @return the member role
- */
- public String getRole() {
- return role;
}
/** {@inheritDoc} */
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/User.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/User.java
index 620ea939..2a291347 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/User.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/model/User.java
@@ -17,42 +17,10 @@ package org.apache.baremaps.openstreetmap.model;
import com.google.common.base.Objects;
/** Represents the author of an objet in an OpenStreetMap dataset. */
-public final class User {
+public record User (int id, String name) {
public static final User NO_USER = new User(-1, "");
- private final int id;
- private final String name;
-
- /**
- * Constructs an OpenStreetMap {@code User} with the specified parameters.
- *
- * @param id the id
- * @param name the name
- */
- public User(int id, String name) {
- this.id = id;
- this.name = name;
- }
-
- /**
- * Returns the id.
- *
- * @return the id
- */
- public int getId() {
- return id;
- }
-
- /**
- * Returns the name.
- *
- * @return the name
- */
- public String getName() {
- return name;
- }
-
/** {@inheritDoc} */
@Override
public boolean equals(Object o) {
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/pbf/DataBlockReader.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/pbf/DataBlockReader.java
index e8834ff4..62f5902b 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/pbf/DataBlockReader.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/pbf/DataBlockReader.java
@@ -83,7 +83,7 @@ class DataBlockReader {
readWays(ways::add);
List<Relation> relations = new ArrayList<>();
readRelations(relations::add);
- return new DataBlock(blob, denseNodes, nodes, ways, relations);
+ return new DataBlock(denseNodes, nodes, ways, relations);
}
/**
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/pbf/HeaderBlockReader.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/pbf/HeaderBlockReader.java
index 8d44f776..48e2953f 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/pbf/HeaderBlockReader.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/pbf/HeaderBlockReader.java
@@ -71,7 +71,7 @@ class HeaderBlockReader {
double maxLat = headerBBox.getTop() * .000000001;
Bound bound = new Bound(maxLat, maxLon, minLat, minLon);
- return new HeaderBlock(blob, header, bound);
+ return new HeaderBlock(header, bound);
}
/**
diff --git a/baremaps-core/src/test/java/org/apache/baremaps/openstreetmap/OpenStreetMapTest.java b/baremaps-core/src/test/java/org/apache/baremaps/openstreetmap/OpenStreetMapTest.java
index 441b29a1..61b754d1 100644
--- a/baremaps-core/src/test/java/org/apache/baremaps/openstreetmap/OpenStreetMapTest.java
+++ b/baremaps-core/src/test/java/org/apache/baremaps/openstreetmap/OpenStreetMapTest.java
@@ -156,10 +156,10 @@ class OpenStreetMapTest {
headers.incrementAndGet();
} else if (entity instanceof Bound bound) {
assertNotNull(bound);
- assertEquals(43.75169, bound.getMaxLat(), 0.000001);
- assertEquals(7.448637, bound.getMaxLon(), 0.000001);
- assertEquals(43.72335, bound.getMinLat(), 0.000001);
- assertEquals(7.409205, bound.getMinLon(), 0.000001);
+ assertEquals(43.75169, bound.maxLat(), 0.000001);
+ assertEquals(7.448637, bound.maxLon(), 0.000001);
+ assertEquals(43.72335, bound.minLat(), 0.000001);
+ assertEquals(7.409205, bound.minLon(), 0.000001);
bounds.incrementAndGet();
} else if (entity instanceof Node node) {
assertNotNull(node);
diff --git a/baremaps-core/src/test/java/org/apache/baremaps/openstreetmap/xml/XmlChangeSpliteratorTest.java b/baremaps-core/src/test/java/org/apache/baremaps/openstreetmap/xml/XmlChangeSpliteratorTest.java
index 57d680fb..e5c19d4a 100644
--- a/baremaps-core/src/test/java/org/apache/baremaps/openstreetmap/xml/XmlChangeSpliteratorTest.java
+++ b/baremaps-core/src/test/java/org/apache/baremaps/openstreetmap/xml/XmlChangeSpliteratorTest.java
@@ -45,7 +45,7 @@ class XmlChangeSpliteratorTest {
AccumulatingConsumer<Change> accumulator = new AccumulatingConsumer<>();
spliterator.forEachRemaining(accumulator);
assertEquals(accumulator.values().size(), 7);
- assertEquals(accumulator.values().stream().flatMap(change -> change.getEntities().stream())
+ assertEquals(accumulator.values().stream().flatMap(change -> change.entities().stream())
.collect(Collectors.toList()).size(), 51);
}
}