Skip to content

Commit 6b2431c

Browse files
committed
Reduced duplicate code
1 parent dfa9cbb commit 6b2431c

15 files changed

+39
-145
lines changed

api/src/main/java/io/kafbat/ui/serdes/BuiltInSerde.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package io.kafbat.ui.serdes;
22

33
import io.kafbat.ui.serde.api.PropertyResolver;
4+
import io.kafbat.ui.serde.api.SchemaDescription;
45
import io.kafbat.ui.serde.api.Serde;
6+
import java.util.Optional;
57

68
public interface BuiltInSerde extends Serde {
79

@@ -24,4 +26,25 @@ default void configure(PropertyResolver serdeProperties,
2426
PropertyResolver kafkaClusterProperties,
2527
PropertyResolver globalProperties) {
2628
}
29+
30+
@Override
31+
default boolean canSerialize(String topic, Serde.Target type) {
32+
return false;
33+
}
34+
35+
@Override
36+
default Serde.Serializer serializer(String topic, Serde.Target type) {
37+
throw new UnsupportedOperationException();
38+
}
39+
40+
@Override
41+
default Optional<SchemaDescription> getSchema(String topic, Serde.Target type) {
42+
return Optional.empty();
43+
}
44+
45+
@Override
46+
default Optional<String> getDescription() {
47+
return Optional.empty();
48+
}
49+
2750
}

api/src/main/java/io/kafbat/ui/serdes/SerdesInitializer.java

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,13 @@ public ClusterSerdes init(Environment env,
150150
* Registers serdse that should only be used for specific (hard-coded) topics, like ConsumerOffsetsSerde.
151151
*/
152152
private void registerTopicRelatedSerde(Map<String, SerdeInstance> serdes) {
153-
registerConsumerOffsetsSerde(serdes);
154-
registerMirrorMakerSerdes(serdes);
153+
serdes.putAll(consumerOffsetsSerde(serdes));
154+
serdes.putAll(mirrorMakerSerdes(serdes));
155155
}
156156

157-
private void registerConsumerOffsetsSerde(Map<String, SerdeInstance> serdes) {
157+
private Map<String, SerdeInstance> consumerOffsetsSerde(Map<String, SerdeInstance> serdes) {
158158
var pattern = Pattern.compile(ConsumerOffsetsSerde.TOPIC);
159-
serdes.put(
159+
return Map.of(
160160
ConsumerOffsetsSerde.name(),
161161
new SerdeInstance(
162162
ConsumerOffsetsSerde.name(),
@@ -168,22 +168,19 @@ private void registerConsumerOffsetsSerde(Map<String, SerdeInstance> serdes) {
168168
);
169169
}
170170

171-
private void registerMirrorMakerSerdes(Map<String, SerdeInstance> serdes) {
172-
Map<String,Map.Entry<Pattern, BuiltInSerde>> mmSerdes = Map.of(
173-
HeartbeatSerde.name(), Map.entry(HeartbeatSerde.TOPIC_NAME_PATTERN, new HeartbeatSerde()),
174-
OffsetSyncSerde.name(), Map.entry(OffsetSyncSerde.TOPIC_NAME_PATTERN, new OffsetSyncSerde()),
175-
CheckpointSerde.name(), Map.entry(CheckpointSerde.TOPIC_NAME_PATTERN, new CheckpointSerde())
171+
private Map<String, SerdeInstance> mirrorMakerSerdes(Map<String, SerdeInstance> serdes) {
172+
return Map.of(
173+
HeartbeatSerde.name(),
174+
mirrorSerde(HeartbeatSerde.name(), HeartbeatSerde.TOPIC_NAME_PATTERN, new HeartbeatSerde()),
175+
OffsetSyncSerde.name(),
176+
mirrorSerde(HeartbeatSerde.name(), OffsetSyncSerde.TOPIC_NAME_PATTERN, new OffsetSyncSerde()),
177+
CheckpointSerde.name(),
178+
mirrorSerde(HeartbeatSerde.name(), CheckpointSerde.TOPIC_NAME_PATTERN, new CheckpointSerde())
176179
);
177-
for (Map.Entry<String, Map.Entry<Pattern, BuiltInSerde>> serde : mmSerdes.entrySet()) {
178-
String name = serde.getKey();
179-
Pattern pattern = serde.getValue().getKey();
180-
BuiltInSerde serdeInstance = serde.getValue().getValue();
180+
}
181181

182-
serdes.put(
183-
name,
184-
new SerdeInstance(name, serdeInstance, pattern, pattern, null)
185-
);
186-
}
182+
private SerdeInstance mirrorSerde(String name, Pattern pattern, BuiltInSerde serde) {
183+
return new SerdeInstance(name, serde, pattern, pattern, null);
187184
}
188185

189186
private SerdeInstance createFallbackSerde() {

api/src/main/java/io/kafbat/ui/serdes/builtin/AvroEmbeddedSerde.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,11 @@ public static String name() {
1818
return "Avro (Embedded)";
1919
}
2020

21-
@Override
22-
public Optional<String> getDescription() {
23-
return Optional.empty();
24-
}
25-
26-
@Override
27-
public Optional<SchemaDescription> getSchema(String topic, Target type) {
28-
return Optional.empty();
29-
}
30-
3121
@Override
3222
public boolean canDeserialize(String topic, Target type) {
3323
return true;
3424
}
3525

36-
@Override
37-
public boolean canSerialize(String topic, Target type) {
38-
return false;
39-
}
40-
4126
@Override
4227
public Serializer serializer(String topic, Target type) {
4328
throw new IllegalStateException();

api/src/main/java/io/kafbat/ui/serdes/builtin/Base64Serde.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,6 @@ public static String name() {
1414
return "Base64";
1515
}
1616

17-
@Override
18-
public Optional<String> getDescription() {
19-
return Optional.empty();
20-
}
21-
22-
@Override
23-
public Optional<SchemaDescription> getSchema(String topic, Serde.Target type) {
24-
return Optional.empty();
25-
}
26-
2717
@Override
2818
public boolean canDeserialize(String topic, Serde.Target type) {
2919
return true;

api/src/main/java/io/kafbat/ui/serdes/builtin/HexSerde.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,6 @@ private void configure(String delim, boolean uppercase) {
3737
}
3838
}
3939

40-
@Override
41-
public Optional<String> getDescription() {
42-
return Optional.empty();
43-
}
44-
45-
@Override
46-
public Optional<SchemaDescription> getSchema(String topic, Target type) {
47-
return Optional.empty();
48-
}
49-
5040
@Override
5141
public boolean canDeserialize(String topic, Target type) {
5242
return true;

api/src/main/java/io/kafbat/ui/serdes/builtin/Int32Serde.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@ public static String name() {
1313
return "Int32";
1414
}
1515

16-
@Override
17-
public Optional<String> getDescription() {
18-
return Optional.empty();
19-
}
20-
2116
@Override
2217
public Optional<SchemaDescription> getSchema(String topic, Target type) {
2318
return Optional.of(

api/src/main/java/io/kafbat/ui/serdes/builtin/Int64Serde.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@ public static String name() {
1414
return "Int64";
1515
}
1616

17-
@Override
18-
public Optional<String> getDescription() {
19-
return Optional.empty();
20-
}
21-
2217
@Override
2318
public Optional<SchemaDescription> getSchema(String topic, Serde.Target type) {
2419
return Optional.of(

api/src/main/java/io/kafbat/ui/serdes/builtin/ProtobufFileSerde.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,6 @@ void configure(Configuration configuration) {
121121
this.keyMessageDescriptorMap = configuration.keyMessageDescriptorMap();
122122
}
123123

124-
@Override
125-
public Optional<String> getDescription() {
126-
return Optional.empty();
127-
}
128-
129124
private Optional<Descriptor> descriptorFor(String topic, Serde.Target type) {
130125
return type == Serde.Target.KEY
131126
?

api/src/main/java/io/kafbat/ui/serdes/builtin/ProtobufRawSerde.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,31 +17,12 @@ public static String name() {
1717
return "ProtobufDecodeRaw";
1818
}
1919

20-
@Override
21-
public Optional<String> getDescription() {
22-
return Optional.empty();
23-
}
24-
25-
@Override
26-
public Optional<SchemaDescription> getSchema(String topic, Serde.Target type) {
27-
return Optional.empty();
28-
}
29-
30-
@Override
31-
public boolean canSerialize(String topic, Serde.Target type) {
32-
return false;
33-
}
3420

3521
@Override
3622
public boolean canDeserialize(String topic, Serde.Target type) {
3723
return true;
3824
}
3925

40-
@Override
41-
public Serde.Serializer serializer(String topic, Serde.Target type) {
42-
throw new UnsupportedOperationException();
43-
}
44-
4526
@Override
4627
public Serde.Deserializer deserializer(String topic, Serde.Target type) {
4728
return new Serde.Deserializer() {

api/src/main/java/io/kafbat/ui/serdes/builtin/StringSerde.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,6 @@ public void configure(PropertyResolver serdeProperties,
2626
.ifPresent(e -> StringSerde.this.encoding = e);
2727
}
2828

29-
@Override
30-
public Optional<String> getDescription() {
31-
return Optional.empty();
32-
}
33-
34-
@Override
35-
public Optional<SchemaDescription> getSchema(String topic, Target type) {
36-
return Optional.empty();
37-
}
38-
3929
@Override
4030
public boolean canDeserialize(String topic, Target type) {
4131
return true;

0 commit comments

Comments
 (0)