This is an automated email from the ASF dual-hosted git repository. bchapuis pushed a commit to branch sonar in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git
commit 58950f6db15ba091db1b92ddaf7fc11a6e34f119 Author: Bertil Chapuis <[email protected]> AuthorDate: Thu Jun 13 01:12:27 2024 +0200 Use record instead of class --- .../database/postgres/RelationRepository.java | 12 +-- .../function/RelationMultiPolygonBuilder.java | 6 +- .../baremaps/openstreetmap/model/Member.java | 93 ++-------------------- 3 files changed, 16 insertions(+), 95 deletions(-) diff --git a/baremaps-core/src/main/java/org/apache/baremaps/database/postgres/RelationRepository.java b/baremaps-core/src/main/java/org/apache/baremaps/database/postgres/RelationRepository.java index 6a0a9622..a37f02b8 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/database/postgres/RelationRepository.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/database/postgres/RelationRepository.java @@ -315,11 +315,11 @@ public class RelationRepository implements Repository<Long, Relation> { writer.writeLong(value.getInfo().getChangeset()); writer.writeJsonb(JsonbMapper.toJson(value.getTags())); writer.writeLongList( - value.getMembers().stream().map(Member::getRef).toList()); - writer.writeIntegerList(value.getMembers().stream().map(Member::getType) + value.getMembers().stream().map(Member::ref).toList()); + writer.writeIntegerList(value.getMembers().stream().map(Member::type) .map(MemberType::ordinal).toList()); writer - .write(value.getMembers().stream().map(Member::getRole).toList()); + .write(value.getMembers().stream().map(Member::role).toList()); writer.writeGeometry(value.getGeometry()); } } @@ -355,12 +355,12 @@ public class RelationRepository implements Repository<Long, Relation> { statement.setObject(4, value.getInfo().getTimestamp()); statement.setObject(5, value.getInfo().getChangeset()); statement.setObject(6, JsonbMapper.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-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java index cdda73cf..e406d592 100644 --- a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java +++ b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java @@ -88,8 +88,8 @@ public class RelationMultiPolygonBuilder implements Consumer<Entity> { var innerMembers = new ArrayList<Member>(); var otherMembers = new ArrayList<Member>(); for (var member : relation.getMembers()) { - if (MemberType.WAY.equals(member.getType())) { - switch (member.getRole()) { + if (MemberType.WAY.equals(member.type())) { + switch (member.role()) { case "outer" -> outerMembers.add(member); case "inner" -> innerMembers.add(member); default -> otherMembers.add(member); @@ -203,7 +203,7 @@ public class RelationMultiPolygonBuilder implements Consumer<Entity> { } private LineString createLineString(Member member) { - List<Long> refs = referenceMap.get(member.getRef()); + List<Long> refs = referenceMap.get(member.ref()); // Build the coordinate list and remove duplicates. List<Coordinate> list = new ArrayList<>(); diff --git a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/model/Member.java b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/model/Member.java index a3b572ac..4e8e8a79 100644 --- a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/model/Member.java +++ b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/model/Member.java @@ -23,7 +23,7 @@ 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 record Member(long ref, MemberType type, String role) { public enum MemberType { NODE, @@ -31,91 +31,12 @@ public final class Member { 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(); - } + return switch (value) { + case 0 -> NODE; + case 1 -> WAY; + case 2 -> 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} */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Member member = (Member) o; - return ref == member.ref && Objects.equal(type, member.type) - && Objects.equal(role, member.role); - } - - /** {@inheritDoc} */ - @Override - public int hashCode() { - return Objects.hashCode(ref, type, role); - } - - /** {@inheritDoc} */ - @Override - public String toString() { - return new StringJoiner(", ", Member.class.getSimpleName() + "[", "]").add("ref=" + ref) - .add("type='" + type.name() + "'").add("role='" + role + "'").toString(); - } }
