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

Reply via email to