[ISSUE #6333] Simplify the logic of the FilterAPI#buildSubscriptionData method (#6334)

This commit is contained in:
mxsm
2023-03-14 11:23:51 +08:00
committed by GitHub
parent fac699ea4d
commit 22a7ec6b63
@@ -16,49 +16,31 @@
*/
package org.apache.rocketmq.remoting.protocol.filter;
import java.net.URL;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.common.filter.ExpressionType;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
import java.util.Arrays;
public class FilterAPI {
public static URL classFile(final String className) {
final String javaSource = simpleClassName(className) + ".java";
URL url = FilterAPI.class.getClassLoader().getResource(javaSource);
return url;
}
public static String simpleClassName(final String className) {
String simple = className;
int index = className.lastIndexOf(".");
if (index >= 0) {
simple = className.substring(index + 1);
}
return simple;
}
public static SubscriptionData buildSubscriptionData(String topic, String subString) throws Exception {
SubscriptionData subscriptionData = new SubscriptionData();
final SubscriptionData subscriptionData = new SubscriptionData();
subscriptionData.setTopic(topic);
subscriptionData.setSubString(subString);
if (null == subString || subString.equals(SubscriptionData.SUB_ALL) || subString.length() == 0) {
if (StringUtils.isEmpty(subString) || subString.equals(SubscriptionData.SUB_ALL)) {
subscriptionData.setSubString(SubscriptionData.SUB_ALL);
return subscriptionData;
}
String[] tags = subString.split("\\|\\|");
if (tags.length > 0) {
Arrays.stream(tags).map(String::trim).filter(tag -> !tag.isEmpty()).forEach(tag -> {
subscriptionData.getTagsSet().add(tag);
subscriptionData.getCodeSet().add(tag.hashCode());
});
} else {
String[] tags = subString.split("\\|\\|");
if (tags.length > 0) {
for (String tag : tags) {
if (tag.length() > 0) {
String trimString = tag.trim();
if (trimString.length() > 0) {
subscriptionData.getTagsSet().add(trimString);
subscriptionData.getCodeSet().add(trimString.hashCode());
}
}
}
} else {
throw new Exception("subString split error");
}
throw new Exception("subString split error");
}
return subscriptionData;
@@ -70,7 +52,7 @@ public class FilterAPI {
return buildSubscriptionData(topic, subString);
}
if (subString == null || subString.length() < 1) {
if (StringUtils.isEmpty(subString)) {
throw new IllegalArgumentException("Expression can't be null! " + type);
}