Skip to content

Commit 4c4b3ab

Browse files
committed
[broker-23] replace topic segments collection with array
1 parent d0a299a commit 4c4b3ab

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

src/main/java/com/ss/mqtt/broker/model/topic/AbstractTopic.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.ss.mqtt.broker.model.topic;
22

3-
import static com.ss.mqtt.broker.util.TopicUtils.splitTopic;
4-
import static com.ss.rlib.common.util.StringUtils.EMPTY;
53
import com.ss.mqtt.broker.util.DebugUtils;
6-
import com.ss.rlib.common.util.array.Array;
74
import lombok.EqualsAndHashCode;
85
import lombok.Getter;
96
import org.jetbrains.annotations.NotNull;
107

8+
import static com.ss.mqtt.broker.util.TopicUtils.splitTopic;
9+
import static com.ss.rlib.common.util.StringUtils.EMPTY;
10+
1111
@Getter
1212
@EqualsAndHashCode(of = "rawTopic")
1313
public abstract class AbstractTopic {
@@ -16,13 +16,15 @@ public abstract class AbstractTopic {
1616
DebugUtils.registerIncludedFields("rawTopic");
1717
}
1818

19-
private final @NotNull Array<String> segments;
19+
private static final String[] EMPTY_ARRAY = new String[0];
20+
private final @NotNull String[] segments;
2021
private final @NotNull String rawTopic;
2122
private final int length;
2223

2324
AbstractTopic() {
2425
length = 0;
25-
segments = empty();
26+
27+
segments = EMPTY_ARRAY;
2628
rawTopic = EMPTY;
2729
}
2830

@@ -33,15 +35,15 @@ public abstract class AbstractTopic {
3335
}
3436

3537
@NotNull String getSegment(int level) {
36-
return segments.get(level);
38+
return segments[level];
3739
}
3840

3941
int levelsCount() {
40-
return segments.size();
42+
return segments.length;
4143
}
4244

4345
String lastSegment() {
44-
return segments.get(segments.size() - 1);
46+
return segments[segments.length - 1];
4547
}
4648

4749
@Override

src/main/java/com/ss/mqtt/broker/util/TopicUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public static boolean hasWildcard(@NotNull TopicFilter topicFilter) {
5454
}
5555
}
5656

57-
public static @NotNull Array<String> splitTopic(@NotNull String topic) {
57+
public static @NotNull String[] splitTopic(@NotNull String topic) {
5858
int segmentCount = StringUtils.countOccurrencesOf(topic, DELIMITER) + 1;
5959
var segments = new String[segmentCount];
6060
int i = 0, pos = 0, end;
@@ -63,7 +63,7 @@ public static boolean hasWildcard(@NotNull TopicFilter topicFilter) {
6363
pos = end + 1;
6464
}
6565
segments[i] = topic.substring(pos);
66-
return newReadOnlyArray(segments);
66+
return segments;
6767
}
6868

6969
private static @NotNull TopicFilter buildSharedTopicFilter(@NotNull String topicFilter) {

0 commit comments

Comments
 (0)