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

dongeforever pushed a commit to branch 5.0.0-alpha-static-topic
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/5.0.0-alpha-static-topic by 
this push:
     new 077cf09  Add request header builder
077cf09 is described below

commit 077cf09db3a17c1b9a0fe1a9b18e89d3ae4be0b2
Author: dongeforever <[email protected]>
AuthorDate: Tue Nov 16 15:09:59 2021 +0800

    Add request header builder
---
 .../apache/rocketmq/common/rpc/RequestBuilder.java | 65 ++++++++++++++++++++++
 .../common/rpc/TopicQueueRequestHeader.java        |  2 -
 2 files changed, 65 insertions(+), 2 deletions(-)

diff --git 
a/common/src/main/java/org/apache/rocketmq/common/rpc/RequestBuilder.java 
b/common/src/main/java/org/apache/rocketmq/common/rpc/RequestBuilder.java
new file mode 100644
index 0000000..aa69b17
--- /dev/null
+++ b/common/src/main/java/org/apache/rocketmq/common/rpc/RequestBuilder.java
@@ -0,0 +1,65 @@
+package org.apache.rocketmq.common.rpc;
+
+import org.apache.rocketmq.common.message.MessageQueue;
+import org.apache.rocketmq.common.protocol.RequestCode;
+import org.apache.rocketmq.common.protocol.header.PullMessageRequestHeader;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class RequestBuilder {
+
+    private static Map<Integer, Class> requestCodeMap = new HashMap<Integer, 
Class>();
+    static {
+        requestCodeMap.put(RequestCode.PULL_MESSAGE, 
PullMessageRequestHeader.class);
+    }
+
+    public static CommonRpcHeader buildCommonRpcHeader(int requestCode, String 
destBrokerName) {
+        return buildCommonRpcHeader(requestCode, null, destBrokerName);
+    }
+
+    public static CommonRpcHeader buildCommonRpcHeader(int requestCode, 
Boolean oneway, String destBrokerName) {
+        Class requestHeaderClass = requestCodeMap.get(requestCode);
+        if (requestHeaderClass == null) {
+            throw new UnsupportedOperationException("unknown " + requestCode);
+        }
+        try {
+            CommonRpcHeader requestHeader = (CommonRpcHeader) 
requestHeaderClass.newInstance();
+            requestHeader.setOneway(oneway);
+            requestHeader.setBname(destBrokerName);
+            return requestHeader;
+        } catch (Throwable t) {
+            throw new RuntimeException(t);
+        }
+    }
+
+    public static TopicQueueRequestHeader buildTopicQueueRequestHeader(int 
requestCode, MessageQueue mq) {
+        return buildTopicQueueRequestHeader(requestCode, null, 
mq.getBrokerName(), mq.getTopic(), mq.getQueueId(), null);
+    }
+
+    public static TopicQueueRequestHeader buildTopicQueueRequestHeader(int 
requestCode, MessageQueue mq, Boolean physical) {
+        return buildTopicQueueRequestHeader(requestCode, null, 
mq.getBrokerName(), mq.getTopic(), mq.getQueueId(), physical);
+    }
+
+    public static TopicQueueRequestHeader buildTopicQueueRequestHeader(int 
requestCode, Boolean oneway, MessageQueue mq, Boolean physical) {
+        return buildTopicQueueRequestHeader(requestCode, oneway, 
mq.getBrokerName(), mq.getTopic(), mq.getQueueId(), physical);
+    }
+
+    public static TopicQueueRequestHeader buildTopicQueueRequestHeader(int 
requestCode,  Boolean oneway, String destBrokerName, String topic, int queueId, 
Boolean physical) {
+        Class requestHeaderClass = requestCodeMap.get(requestCode);
+        if (requestHeaderClass == null) {
+            throw new UnsupportedOperationException("unknown " + requestCode);
+        }
+        try {
+            TopicQueueRequestHeader requestHeader = (TopicQueueRequestHeader) 
requestHeaderClass.newInstance();
+            requestHeader.setOneway(oneway);
+            requestHeader.setBname(destBrokerName);
+            requestHeader.setTopic(topic);
+            requestHeader.setQueueId(queueId);
+            requestHeader.setPhysical(physical);
+            return requestHeader;
+        } catch (Throwable t) {
+            throw new RuntimeException(t);
+        }
+    }
+}
diff --git 
a/common/src/main/java/org/apache/rocketmq/common/rpc/TopicQueueRequestHeader.java
 
b/common/src/main/java/org/apache/rocketmq/common/rpc/TopicQueueRequestHeader.java
index 897dfcb..4b0a394 100644
--- 
a/common/src/main/java/org/apache/rocketmq/common/rpc/TopicQueueRequestHeader.java
+++ 
b/common/src/main/java/org/apache/rocketmq/common/rpc/TopicQueueRequestHeader.java
@@ -20,12 +20,10 @@ public abstract class TopicQueueRequestHeader extends 
CommonRpcHeader {
     //Physical or Logical
     protected Boolean physical;
 
-    @Override
     public Boolean getPhysical() {
         return physical;
     }
 
-    @Override
     public void setPhysical(Boolean physical) {
         this.physical = physical;
     }

Reply via email to