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