You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2021/12/04 15:23:56 UTC

[hbase] 02/02: HBASE-26490 Add builder for class ReplicationLoadSink (#3883)

This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2.4
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 02fa0903a206bbcc42b7daaadb66e428e0a4184e
Author: Yutong Xiao <yu...@gmail.com>
AuthorDate: Sat Dec 4 23:00:22 2021 +0800

    HBASE-26490 Add builder for class ReplicationLoadSink (#3883)
    
    Signed-off-by: Reid Chan <re...@apache.org>
    Signed-off-by: Duo Zhang <zh...@apache.org>
---
 .../hbase/replication/ReplicationLoadSink.java     | 44 ++++++++++++++++++++--
 .../hadoop/hbase/shaded/protobuf/ProtobufUtil.java | 10 +++--
 2 files changed, 47 insertions(+), 7 deletions(-)

diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationLoadSink.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationLoadSink.java
index f9afddd..7551560 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationLoadSink.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationLoadSink.java
@@ -22,9 +22,7 @@ public class ReplicationLoadSink {
   private final long timestampStarted;
   private final long totalOpsProcessed;
 
-  // TODO: add the builder for this class
-  @InterfaceAudience.Private
-  public ReplicationLoadSink(long age, long timestamp, long timestampStarted,
+  private ReplicationLoadSink(long age, long timestamp, long timestampStarted,
       long totalOpsProcessed) {
     this.ageOfLastAppliedOp = age;
     this.timestampsOfLastAppliedOp = timestamp;
@@ -56,4 +54,44 @@ public class ReplicationLoadSink {
   public long getTotalOpsProcessed() {
     return totalOpsProcessed;
   }
+
+  @InterfaceAudience.Private
+  public static ReplicationLoadSinkBuilder newBuilder() {
+    return new ReplicationLoadSinkBuilder();
+  }
+
+  @InterfaceAudience.Private
+  public static final class ReplicationLoadSinkBuilder {
+    private long ageOfLastAppliedOp;
+    private long timestampsOfLastAppliedOp;
+    private long timestampStarted;
+    private long totalOpsProcessed;
+
+    private ReplicationLoadSinkBuilder() {}
+
+    public ReplicationLoadSinkBuilder setAgeOfLastAppliedOp(long ageOfLastAppliedOp) {
+      this.ageOfLastAppliedOp = ageOfLastAppliedOp;
+      return this;
+    }
+
+    public ReplicationLoadSinkBuilder setTimestampsOfLastAppliedOp(long timestampsOfLastAppliedOp) {
+      this.timestampsOfLastAppliedOp = timestampsOfLastAppliedOp;
+      return this;
+    }
+
+    public ReplicationLoadSinkBuilder setTimestampStarted(long timestampStarted) {
+      this.timestampStarted = timestampStarted;
+      return this;
+    }
+
+    public ReplicationLoadSinkBuilder setTotalOpsProcessed(long totalOpsProcessed) {
+      this.totalOpsProcessed = totalOpsProcessed;
+      return this;
+    }
+
+    public ReplicationLoadSink build() {
+      return new ReplicationLoadSink(ageOfLastAppliedOp, timestampsOfLastAppliedOp,
+        timestampStarted, totalOpsProcessed);
+    }
+  }
 }
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
index c2544f6..9485809 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
@@ -2796,10 +2796,12 @@ public final class ProtobufUtil {
 
   public static ReplicationLoadSink toReplicationLoadSink(
       ClusterStatusProtos.ReplicationLoadSink rls) {
-    return new ReplicationLoadSink(rls.getAgeOfLastAppliedOp(),
-        rls.getTimeStampsOfLastAppliedOp(),
-        rls.hasTimestampStarted()? rls.getTimestampStarted(): -1L,
-        rls.hasTotalOpsProcessed()? rls.getTotalOpsProcessed(): -1L);
+    ReplicationLoadSink.ReplicationLoadSinkBuilder builder = ReplicationLoadSink.newBuilder();
+    builder.setAgeOfLastAppliedOp(rls.getAgeOfLastAppliedOp()).
+      setTimestampsOfLastAppliedOp(rls.getTimeStampsOfLastAppliedOp()).
+      setTimestampStarted(rls.hasTimestampStarted()? rls.getTimestampStarted(): -1L).
+      setTotalOpsProcessed(rls.hasTotalOpsProcessed()? rls.getTotalOpsProcessed(): -1L);
+    return builder.build();
   }
 
   public static ReplicationLoadSource toReplicationLoadSource(