Skip to content

Commit 0c7080a

Browse files
committed
refactor: centralize proto-to-model conversion with ProtoConversionUtil
1 parent befb427 commit 0c7080a

File tree

7 files changed

+93
-159
lines changed

7 files changed

+93
-159
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package app.simplecloud.api.internal;
2+
3+
import app.simplecloud.api.server.ServerState;
4+
5+
/**
6+
* Utility class for converting protobuf enums to API models.
7+
*/
8+
public final class ProtoConversionUtil {
9+
10+
private ProtoConversionUtil() {
11+
}
12+
13+
public static String convertServerStateToString(build.buf.gen.simplecloud.controller.v2.ServerState protoState) {
14+
if (protoState == null) {
15+
return null;
16+
}
17+
18+
String name = protoState.name();
19+
if (name == null || name.isEmpty() || name.equals("UNRECOGNIZED")) {
20+
return null;
21+
}
22+
23+
if (name.startsWith("SERVER_STATE_")) {
24+
return name.substring("SERVER_STATE_".length());
25+
}
26+
27+
return name;
28+
}
29+
30+
public static ServerState convertServerState(build.buf.gen.simplecloud.controller.v2.ServerState protoState) {
31+
if (protoState == null) {
32+
return null;
33+
}
34+
35+
String name = protoState.name();
36+
if (name == null || name.isEmpty() || name.equals("UNRECOGNIZED")) {
37+
return null;
38+
}
39+
40+
if (name.startsWith("SERVER_STATE_")) {
41+
name = name.substring("SERVER_STATE_".length());
42+
}
43+
44+
try {
45+
return ServerState.valueOf(name);
46+
} catch (IllegalArgumentException e) {
47+
return null;
48+
}
49+
}
50+
51+
public static String convertServerTypeToString(build.buf.gen.simplecloud.controller.v2.ServerType protoType) {
52+
if (protoType == null) {
53+
return null;
54+
}
55+
56+
String name = protoType.name();
57+
if (name == null || name.isEmpty() || name.equals("UNRECOGNIZED")) {
58+
return null;
59+
}
60+
61+
if (name.startsWith("SERVER_TYPE_")) {
62+
return name.substring("SERVER_TYPE_".length());
63+
}
64+
65+
return name;
66+
}
67+
68+
}

api/src/main/java/app/simplecloud/api/internal/event/server/ServerDeletedEventImpl.java

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package app.simplecloud.api.internal.event.server;
22

33
import app.simplecloud.api.event.server.ServerDeletedEvent;
4+
import app.simplecloud.api.internal.ProtoConversionUtil;
45
import app.simplecloud.api.internal.persistentserver.PersistentServerImpl;
56
import app.simplecloud.api.internal.server.ServerImpl;
67
import app.simplecloud.api.server.Server;
@@ -63,7 +64,7 @@ public Server getServer() {
6364
summary.setNumericalId(runtime.getNumericalId());
6465
summary.setIp(runtime.getIp());
6566
summary.setPort(runtime.getPort());
66-
summary.setState(ModelsServerSummary.StateEnum.valueOf(delegate.getRuntimeInfo().getState().toString()));
67+
summary.setState(ModelsServerSummary.StateEnum.valueOf(ProtoConversionUtil.convertServerStateToString(runtime.getState())));
6768
summary.setPlayerCount(-1); // TODO: implement with real player count by adding it to runtime info
6869
if (!runtime.getServerhostId().isEmpty()) {
6970
summary.setServerhostId(runtime.getServerhostId());
@@ -78,15 +79,15 @@ public Server getServer() {
7879
var baseConfig = groupConfig.getBaseConfig();
7980
groupInfo.setId(delegate.getServerGroupId());
8081
groupInfo.setName(baseConfig.getName());
81-
groupInfo.setType(convertServerTypeToString(baseConfig.getType()));
82+
groupInfo.setType(ProtoConversionUtil.convertServerTypeToString(baseConfig.getType()));
8283
summary.setServerGroup(groupInfo);
8384
} else if (delegate.hasPersistentServerConfig() && delegate.getPersistentServerConfig().hasBaseConfig()) {
8485
ModelsPersistentServerInfo persistentServerInfo = new ModelsPersistentServerInfo();
8586
var psConfig = delegate.getPersistentServerConfig();
8687
var baseConfig = psConfig.getBaseConfig();
8788
persistentServerInfo.setId(delegate.getPersistentServerId());
8889
persistentServerInfo.setName(baseConfig.getName());
89-
persistentServerInfo.setType(convertServerTypeToString(baseConfig.getType()));
90+
persistentServerInfo.setType(ProtoConversionUtil.convertServerTypeToString(baseConfig.getType()));
9091
summary.setPersistentServerId(delegate.getPersistentServerId());
9192
serverImpl.setPersistentServer(new PersistentServerImpl(persistentServerInfo));
9293
}
@@ -100,22 +101,5 @@ public Server getServer() {
100101
public String getTimestamp() {
101102
return Instant.ofEpochSecond(delegate.getTimestamp()).toString();
102103
}
103-
104-
private String convertServerTypeToString(build.buf.gen.simplecloud.controller.v2.ServerType protoType) {
105-
if (protoType == null) {
106-
return null;
107-
}
108-
109-
String name = protoType.name();
110-
if (name == null || name.isEmpty() || name.equals("UNRECOGNIZED")) {
111-
return null;
112-
}
113-
114-
if (name.startsWith("SERVER_TYPE_")) {
115-
return name.substring("SERVER_TYPE_".length());
116-
}
117-
118-
return name;
119-
}
120104
}
121105

api/src/main/java/app/simplecloud/api/internal/event/server/ServerStartedEventImpl.java

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package app.simplecloud.api.internal.event.server;
22

33
import app.simplecloud.api.event.server.ServerStartedEvent;
4+
import app.simplecloud.api.internal.ProtoConversionUtil;
45
import app.simplecloud.api.internal.persistentserver.PersistentServerImpl;
56
import app.simplecloud.api.internal.server.ServerImpl;
67
import app.simplecloud.api.server.Server;
@@ -63,14 +64,14 @@ public Server getServer() {
6364
summary.setNumericalId(runtime.getNumericalId());
6465
summary.setIp(runtime.getIp());
6566
summary.setPort(runtime.getPort());
66-
summary.setState(ModelsServerSummary.StateEnum.valueOf(delegate.getRuntimeInfo().getState().toString()));
67+
summary.setState(ModelsServerSummary.StateEnum.valueOf(ProtoConversionUtil.convertServerStateToString(runtime.getState())));
6768
summary.setPlayerCount(-1); // TODO: implement with real player count by adding it to runtime info
6869
if (!runtime.getServerhostId().isEmpty()) {
6970
summary.setServerhostId(runtime.getServerhostId());
7071
}
7172
}
7273

73-
summary.setState(ModelsServerSummary.StateEnum.valueOf(convertServerStateToString(delegate.getState())));
74+
summary.setState(ModelsServerSummary.StateEnum.valueOf(ProtoConversionUtil.convertServerStateToString(delegate.getState())));
7475

7576
ServerImpl serverImpl = new ServerImpl(summary);
7677

@@ -80,15 +81,15 @@ public Server getServer() {
8081
var baseConfig = groupConfig.getBaseConfig();
8182
groupInfo.setId(delegate.getServerGroupId());
8283
groupInfo.setName(baseConfig.getName());
83-
groupInfo.setType(convertServerTypeToString(baseConfig.getType()));
84+
groupInfo.setType(ProtoConversionUtil.convertServerTypeToString(baseConfig.getType()));
8485
summary.setServerGroup(groupInfo);
8586
} else if (delegate.hasPersistentServerConfig() && delegate.getPersistentServerConfig().hasBaseConfig()) {
8687
ModelsPersistentServerInfo persistentServerInfo = new ModelsPersistentServerInfo();
8788
var psConfig = delegate.getPersistentServerConfig();
8889
var baseConfig = psConfig.getBaseConfig();
8990
persistentServerInfo.setId(delegate.getPersistentServerId());
9091
persistentServerInfo.setName(baseConfig.getName());
91-
persistentServerInfo.setType(convertServerTypeToString(baseConfig.getType()));
92+
persistentServerInfo.setType(ProtoConversionUtil.convertServerTypeToString(baseConfig.getType()));
9293
summary.setPersistentServerId(delegate.getPersistentServerId());
9394
serverImpl.setPersistentServer(new PersistentServerImpl(persistentServerInfo));
9495
}
@@ -102,39 +103,5 @@ public Server getServer() {
102103
public String getTimestamp() {
103104
return Instant.ofEpochSecond(delegate.getTimestamp()).toString();
104105
}
105-
106-
private String convertServerStateToString(build.buf.gen.simplecloud.controller.v2.ServerState protoState) {
107-
if (protoState == null) {
108-
return null;
109-
}
110-
111-
String name = protoState.name();
112-
if (name == null || name.isEmpty() || name.equals("UNRECOGNIZED")) {
113-
return null;
114-
}
115-
116-
if (name.startsWith("SERVER_STATE_")) {
117-
return name.substring("SERVER_STATE_".length());
118-
}
119-
120-
return name;
121-
}
122-
123-
private String convertServerTypeToString(build.buf.gen.simplecloud.controller.v2.ServerType protoType) {
124-
if (protoType == null) {
125-
return null;
126-
}
127-
128-
String name = protoType.name();
129-
if (name == null || name.isEmpty() || name.equals("UNRECOGNIZED")) {
130-
return null;
131-
}
132-
133-
if (name.startsWith("SERVER_TYPE_")) {
134-
return name.substring("SERVER_TYPE_".length());
135-
}
136-
137-
return name;
138-
}
139106
}
140107

Lines changed: 7 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package app.simplecloud.api.internal.event.server;
22

33
import app.simplecloud.api.event.server.ServerStateChangedEvent;
4+
import app.simplecloud.api.internal.ProtoConversionUtil;
45
import app.simplecloud.api.internal.persistentserver.PersistentServerImpl;
56
import app.simplecloud.api.internal.server.ServerImpl;
67
import app.simplecloud.api.server.Server;
@@ -33,7 +34,7 @@ public String getServerId() {
3334

3435
@Override
3536
public ServerState getOldState() {
36-
ServerState state = convertServerState(delegate.getOldState());
37+
ServerState state = ProtoConversionUtil.convertServerState(delegate.getOldState());
3738
if (state == null) {
3839
throw new IllegalStateException("Old state is not available in ServerStateChangedEvent");
3940
}
@@ -42,7 +43,7 @@ public ServerState getOldState() {
4243

4344
@Override
4445
public ServerState getNewState() {
45-
ServerState state = convertServerState(delegate.getNewState());
46+
ServerState state = ProtoConversionUtil.convertServerState(delegate.getNewState());
4647
if (state == null) {
4748
throw new IllegalStateException("New state is not available in ServerStateChangedEvent");
4849
}
@@ -77,14 +78,14 @@ public Server getServer() {
7778
summary.setNumericalId(runtime.getNumericalId());
7879
summary.setIp(runtime.getIp());
7980
summary.setPort(runtime.getPort());
80-
summary.setState(ModelsServerSummary.StateEnum.valueOf(convertServerStateToString(delegate.getRuntimeInfo().getState())));
81+
summary.setState(ModelsServerSummary.StateEnum.valueOf(ProtoConversionUtil.convertServerStateToString(runtime.getState())));
8182
summary.setPlayerCount(-1); // TODO: implement with real player count by adding it to runtime info
8283
if (!runtime.getServerhostId().isEmpty()) {
8384
summary.setServerhostId(runtime.getServerhostId());
8485
}
8586
}
8687

87-
summary.setState(ModelsServerSummary.StateEnum.valueOf(convertServerStateToString(delegate.getNewState())));
88+
summary.setState(ModelsServerSummary.StateEnum.valueOf(ProtoConversionUtil.convertServerStateToString(delegate.getNewState())));
8889

8990
ServerImpl serverImpl = new ServerImpl(summary);
9091

@@ -94,15 +95,15 @@ public Server getServer() {
9495
var baseConfig = groupConfig.getBaseConfig();
9596
groupInfo.setId(delegate.getServerGroupId());
9697
groupInfo.setName(baseConfig.getName());
97-
groupInfo.setType(convertServerTypeToString(baseConfig.getType()));
98+
groupInfo.setType(ProtoConversionUtil.convertServerTypeToString(baseConfig.getType()));
9899
summary.setServerGroup(groupInfo);
99100
} else if (delegate.hasPersistentServerConfig() && delegate.getPersistentServerConfig().hasBaseConfig()) {
100101
ModelsPersistentServerInfo persistentServerInfo = new ModelsPersistentServerInfo();
101102
var psConfig = delegate.getPersistentServerConfig();
102103
var baseConfig = psConfig.getBaseConfig();
103104
persistentServerInfo.setId(delegate.getPersistentServerId());
104105
persistentServerInfo.setName(baseConfig.getName());
105-
persistentServerInfo.setType(convertServerTypeToString(baseConfig.getType()));
106+
persistentServerInfo.setType(ProtoConversionUtil.convertServerTypeToString(baseConfig.getType()));
106107
summary.setPersistentServerId(delegate.getPersistentServerId());
107108
serverImpl.setPersistentServer(new PersistentServerImpl(persistentServerInfo));
108109
}
@@ -116,60 +117,5 @@ public Server getServer() {
116117
public String getTimestamp() {
117118
return Instant.ofEpochSecond(delegate.getTimestamp()).toString();
118119
}
119-
120-
private ServerState convertServerState(build.buf.gen.simplecloud.controller.v2.ServerState protoState) {
121-
if (protoState == null) {
122-
return null;
123-
}
124-
125-
String name = protoState.name();
126-
if (name == null || name.isEmpty() || name.equals("UNRECOGNIZED")) {
127-
return null;
128-
}
129-
130-
if (name.startsWith("SERVER_STATE_")) {
131-
name = name.substring("SERVER_STATE_".length());
132-
}
133-
134-
try {
135-
return ServerState.valueOf(name);
136-
} catch (IllegalArgumentException e) {
137-
return null;
138-
}
139-
}
140-
141-
private String convertServerStateToString(build.buf.gen.simplecloud.controller.v2.ServerState protoState) {
142-
if (protoState == null) {
143-
return null;
144-
}
145-
146-
String name = protoState.name();
147-
if (name == null || name.isEmpty() || name.equals("UNRECOGNIZED")) {
148-
return null;
149-
}
150-
151-
if (name.startsWith("SERVER_STATE_")) {
152-
return name.substring("SERVER_STATE_".length());
153-
}
154-
155-
return name;
156-
}
157-
158-
private String convertServerTypeToString(build.buf.gen.simplecloud.controller.v2.ServerType protoType) {
159-
if (protoType == null) {
160-
return null;
161-
}
162-
163-
String name = protoType.name();
164-
if (name == null || name.isEmpty() || name.equals("UNRECOGNIZED")) {
165-
return null;
166-
}
167-
168-
if (name.startsWith("SERVER_TYPE_")) {
169-
return name.substring("SERVER_TYPE_".length());
170-
}
171-
172-
return name;
173-
}
174120
}
175121

api/src/main/java/app/simplecloud/api/internal/event/server/ServerStoppedEventImpl.java

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package app.simplecloud.api.internal.event.server;
22

33
import app.simplecloud.api.event.server.ServerStoppedEvent;
4+
import app.simplecloud.api.internal.ProtoConversionUtil;
45
import app.simplecloud.api.internal.persistentserver.PersistentServerImpl;
56
import app.simplecloud.api.internal.server.ServerImpl;
67
import app.simplecloud.api.server.Server;
@@ -64,7 +65,7 @@ public Server getServer() {
6465
summary.setNumericalId(runtime.getNumericalId());
6566
summary.setIp(runtime.getIp());
6667
summary.setPort(runtime.getPort());
67-
summary.setState(ModelsServerSummary.StateEnum.valueOf(delegate.getRuntimeInfo().getState().name()));
68+
summary.setState(ModelsServerSummary.StateEnum.valueOf(ProtoConversionUtil.convertServerStateToString(runtime.getState())));
6869
summary.setPlayerCount(-1); // TODO: implement with real player count by adding it to runtime info
6970
if (!runtime.getServerhostId().isEmpty()) {
7071
summary.setServerhostId(runtime.getServerhostId());
@@ -79,15 +80,15 @@ public Server getServer() {
7980
var baseConfig = groupConfig.getBaseConfig();
8081
groupInfo.setId(delegate.getServerGroupId());
8182
groupInfo.setName(baseConfig.getName());
82-
groupInfo.setType(convertServerTypeToString(baseConfig.getType()));
83+
groupInfo.setType(ProtoConversionUtil.convertServerTypeToString(baseConfig.getType()));
8384
summary.setServerGroup(groupInfo);
8485
} else if (delegate.hasPersistentServerConfig() && delegate.getPersistentServerConfig().hasBaseConfig()) {
8586
ModelsPersistentServerInfo persistentServerInfo = new ModelsPersistentServerInfo();
8687
var psConfig = delegate.getPersistentServerConfig();
8788
var baseConfig = psConfig.getBaseConfig();
8889
persistentServerInfo.setId(delegate.getPersistentServerId());
8990
persistentServerInfo.setName(baseConfig.getName());
90-
persistentServerInfo.setType(convertServerTypeToString(baseConfig.getType()));
91+
persistentServerInfo.setType(ProtoConversionUtil.convertServerTypeToString(baseConfig.getType()));
9192
summary.setPersistentServerId(delegate.getPersistentServerId());
9293
serverImpl.setPersistentServer(new PersistentServerImpl(persistentServerInfo));
9394
}
@@ -120,22 +121,5 @@ public String getReason() {
120121
public String getTimestamp() {
121122
return Instant.ofEpochSecond(delegate.getTimestamp()).toString();
122123
}
123-
124-
private String convertServerTypeToString(build.buf.gen.simplecloud.controller.v2.ServerType protoType) {
125-
if (protoType == null) {
126-
return null;
127-
}
128-
129-
String name = protoType.name();
130-
if (name == null || name.isEmpty() || name.equals("UNRECOGNIZED")) {
131-
return null;
132-
}
133-
134-
if (name.startsWith("SERVER_TYPE_")) {
135-
return name.substring("SERVER_TYPE_".length());
136-
}
137-
138-
return name;
139-
}
140124
}
141125

0 commit comments

Comments
 (0)