Skip to content

Commit e464913

Browse files
author
Daniil Zulin
committed
Move proto mappings into the TopicClientImpl
1 parent 1ca0b66 commit e464913

File tree

2 files changed

+37
-30
lines changed

2 files changed

+37
-30
lines changed

topic/src/main/java/tech/ydb/topic/impl/TopicClientImpl.java

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public CompletableFuture<Status> createTopic(String path, CreateTopicSettings se
109109
.setMinActivePartitions(partitioningSettings.getMinActivePartitions())
110110
.setPartitionCountLimit(partitioningSettings.getPartitionCountLimit())
111111
.setAutoPartitioningSettings(YdbTopic.AutoPartitioningSettings.newBuilder()
112-
.setStrategy(partitioningSettings.getAutoPartitioningStrategy().getProtoReference())));
112+
.setStrategy(toProto(partitioningSettings.getAutoPartitioningStrategy()))));
113113

114114
AutoPartitioningWriteStrategySettings writeStrategySettings = partitioningSettings
115115
.getWriteStrategySettings();
@@ -166,7 +166,7 @@ public CompletableFuture<Status> alterTopic(String path, AlterTopicSettings sett
166166
}
167167
AutoPartitioningStrategy autoPartitioningStrategy = partitioningSettings.getAutoPartitioningStrategy();
168168
if (autoPartitioningStrategy != null) {
169-
YdbTopic.AutoPartitioningStrategy protoReference = autoPartitioningStrategy.getProtoReference();
169+
YdbTopic.AutoPartitioningStrategy protoReference = toProto(autoPartitioningStrategy);
170170
builder.getAlterAutoPartitioningSettingsBuilder().setSetStrategy(protoReference);
171171
}
172172
AlterAutoPartitioningWriteStrategySettings writeStrategySettings = partitioningSettings
@@ -322,7 +322,7 @@ private TopicDescription mapDescribeTopic(YdbTopic.DescribeTopicResult result) {
322322
PartitioningSettings.Builder partitioningDescription = PartitioningSettings.newBuilder()
323323
.setMinActivePartitions(partitioningSettings.getMinActivePartitions())
324324
.setPartitionCountLimit(partitioningSettings.getPartitionCountLimit())
325-
.setAutoPartitioningStrategy(AutoPartitioningStrategy.fromProto(autoPartitioningStrategy));
325+
.setAutoPartitioningStrategy(fromProto(autoPartitioningStrategy));
326326

327327
YdbTopic.AutoPartitioningWriteSpeedStrategy partitionWriteSpeed = autoPartitioningSettings
328328
.getPartitionWriteSpeed();
@@ -449,6 +449,36 @@ private static YdbTopic.SupportedCodecs toProto(SupportedCodecs supportedCodecs)
449449
return codecsBuilder.build();
450450
}
451451

452+
private static AutoPartitioningStrategy fromProto(YdbTopic.AutoPartitioningStrategy autoPartitioningStrategy) {
453+
switch (autoPartitioningStrategy) {
454+
case AUTO_PARTITIONING_STRATEGY_PAUSED:
455+
return AutoPartitioningStrategy.PAUSED;
456+
case AUTO_PARTITIONING_STRATEGY_SCALE_UP:
457+
return AutoPartitioningStrategy.SCALE_UP;
458+
case AUTO_PARTITIONING_STRATEGY_SCALE_UP_AND_DOWN:
459+
return AutoPartitioningStrategy.SCALE_UP_AND_DOWN;
460+
case AUTO_PARTITIONING_STRATEGY_DISABLED:
461+
return AutoPartitioningStrategy.DISABLED;
462+
default:
463+
return null;
464+
}
465+
}
466+
467+
private static YdbTopic.AutoPartitioningStrategy toProto(AutoPartitioningStrategy autoPartitioningStrategy) {
468+
switch (autoPartitioningStrategy) {
469+
case PAUSED:
470+
return YdbTopic.AutoPartitioningStrategy.AUTO_PARTITIONING_STRATEGY_PAUSED;
471+
case SCALE_UP:
472+
return YdbTopic.AutoPartitioningStrategy.AUTO_PARTITIONING_STRATEGY_SCALE_UP;
473+
case SCALE_UP_AND_DOWN:
474+
return YdbTopic.AutoPartitioningStrategy.AUTO_PARTITIONING_STRATEGY_SCALE_UP_AND_DOWN;
475+
case DISABLED:
476+
return YdbTopic.AutoPartitioningStrategy.AUTO_PARTITIONING_STRATEGY_DISABLED;
477+
default:
478+
throw new IllegalArgumentException("Unknown auto partitioning strategy: " + autoPartitioningStrategy);
479+
}
480+
}
481+
452482
@Override
453483
public void close() {
454484
logger.debug("TopicClientImpl.close() is called");
Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,25 @@
11
package tech.ydb.topic.settings;
22

3-
import javax.annotation.Nullable;
4-
5-
import tech.ydb.proto.topic.YdbTopic;
6-
73
public enum AutoPartitioningStrategy {
84
/**
95
* The auto partitioning is disabled.
106
* You cannot disable the auto partitioning after it has been enabled.
117
* @see AutoPartitioningStrategy#PAUSED
128
*/
13-
DISABLED(YdbTopic.AutoPartitioningStrategy.AUTO_PARTITIONING_STRATEGY_DISABLED),
9+
DISABLED,
1410
/**
1511
* The auto partitioning algorithm will increase the partition count depending on the load characteristics.
1612
* The auto partitioning algorithm will never decrease the number of partitions.
1713
* @see AlterAutoPartitioningWriteStrategySettings
1814
*/
19-
SCALE_UP(YdbTopic.AutoPartitioningStrategy.AUTO_PARTITIONING_STRATEGY_SCALE_UP),
15+
SCALE_UP,
2016
/**
2117
* The auto partitioning algorithm will both increase and decrease partitions count depending on the load characteristics.
2218
* @see AlterAutoPartitioningWriteStrategySettings
2319
*/
24-
SCALE_UP_AND_DOWN(YdbTopic.AutoPartitioningStrategy.AUTO_PARTITIONING_STRATEGY_SCALE_UP_AND_DOWN),
20+
SCALE_UP_AND_DOWN,
2521
/**
2622
* The auto partitioning is paused.
2723
*/
28-
PAUSED(YdbTopic.AutoPartitioningStrategy.AUTO_PARTITIONING_STRATEGY_PAUSED);
29-
30-
private final YdbTopic.AutoPartitioningStrategy protoReference;
31-
32-
AutoPartitioningStrategy(YdbTopic.AutoPartitioningStrategy protoReference) {
33-
this.protoReference = protoReference;
34-
}
35-
36-
public YdbTopic.AutoPartitioningStrategy getProtoReference() {
37-
return protoReference;
38-
}
39-
40-
public static @Nullable AutoPartitioningStrategy fromProto(YdbTopic.AutoPartitioningStrategy protoReference) {
41-
for (AutoPartitioningStrategy value : values()) {
42-
if (value.getProtoReference() == protoReference) {
43-
return value;
44-
}
45-
}
46-
return null;
47-
}
24+
PAUSED;
4825
}

0 commit comments

Comments
 (0)