modularized common and core
This commit is contained in:
@@ -3,7 +3,7 @@ package eu.jonahbauer.wizard.common.messages.client;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import eu.jonahbauer.wizard.common.messages.ParseException;
|
||||
import eu.jonahbauer.wizard.common.messages.player.PlayerMessage;
|
||||
import eu.jonahbauer.wizard.common.util.SerializationUtil;
|
||||
import eu.jonahbauer.wizard.common.messages.util.SerializationUtil;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
|
@@ -2,7 +2,7 @@ package eu.jonahbauer.wizard.common.messages.observer;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import eu.jonahbauer.wizard.common.messages.ParseException;
|
||||
import eu.jonahbauer.wizard.common.util.SerializationUtil;
|
||||
import eu.jonahbauer.wizard.common.messages.util.SerializationUtil;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
|
@@ -2,7 +2,7 @@ package eu.jonahbauer.wizard.common.messages.player;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import eu.jonahbauer.wizard.common.messages.ParseException;
|
||||
import eu.jonahbauer.wizard.common.util.SerializationUtil;
|
||||
import eu.jonahbauer.wizard.common.messages.util.SerializationUtil;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
|
@@ -3,7 +3,7 @@ package eu.jonahbauer.wizard.common.messages.server;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import eu.jonahbauer.wizard.common.messages.ParseException;
|
||||
import eu.jonahbauer.wizard.common.messages.observer.ObserverMessage;
|
||||
import eu.jonahbauer.wizard.common.util.SerializationUtil;
|
||||
import eu.jonahbauer.wizard.common.messages.util.SerializationUtil;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package eu.jonahbauer.wizard.common.util;
|
||||
package eu.jonahbauer.wizard.common.messages.util;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
@@ -10,10 +10,10 @@ import com.fasterxml.jackson.databind.jsontype.NamedType;
|
||||
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
|
||||
import eu.jonahbauer.wizard.common.messages.ParseException;
|
||||
import eu.jonahbauer.wizard.common.util.StringUtil;
|
||||
import lombok.experimental.UtilityClass;
|
||||
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.Locale;
|
||||
|
||||
@UtilityClass
|
||||
public class SerializationUtil {
|
||||
@@ -61,7 +61,7 @@ public class SerializationUtil {
|
||||
if (Modifier.isFinal(modifiers) || subclass.isSealed() && !Modifier.isAbstract(modifiers)) {
|
||||
var name = subclass.getSimpleName();
|
||||
if (name.endsWith(suffix)) name = name.substring(0, name.length() - suffix.length());
|
||||
name = name.replaceAll("([a-z])([A-Z]+)", "$1_$2").toLowerCase(Locale.ROOT);
|
||||
name = StringUtil.toSnakeCase(name);
|
||||
|
||||
objectMapper.registerSubtypes(new NamedType(subclass, name));
|
||||
}
|
@@ -0,0 +1,24 @@
|
||||
package eu.jonahbauer.wizard.common.util;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public record Pair<F,S>(F first, S second) implements Map.Entry<F,S> {
|
||||
public static <F,S> Pair<F,S> of(F first, S second) {
|
||||
return new Pair<>(first, second);
|
||||
}
|
||||
|
||||
@Override
|
||||
public F getKey() {
|
||||
return first();
|
||||
}
|
||||
|
||||
@Override
|
||||
public S getValue() {
|
||||
return second();
|
||||
}
|
||||
|
||||
@Override
|
||||
public S setValue(S value) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
package eu.jonahbauer.wizard.common.util;
|
||||
|
||||
import lombok.experimental.UtilityClass;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
@UtilityClass
|
||||
public class StringUtil {
|
||||
public static String toSnakeCase(String str) {
|
||||
return str.replaceAll("([a-z])([A-Z]+)", "$1_$2").toLowerCase(Locale.ROOT);
|
||||
}
|
||||
}
|
23
wizard-common/src/main/java/module-info.java
Normal file
23
wizard-common/src/main/java/module-info.java
Normal file
@@ -0,0 +1,23 @@
|
||||
module eu.jonahbauer.wizard.common {
|
||||
exports eu.jonahbauer.wizard.common.machine;
|
||||
exports eu.jonahbauer.wizard.common.messages;
|
||||
exports eu.jonahbauer.wizard.common.messages.client;
|
||||
exports eu.jonahbauer.wizard.common.messages.data;
|
||||
exports eu.jonahbauer.wizard.common.messages.observer;
|
||||
exports eu.jonahbauer.wizard.common.messages.player;
|
||||
exports eu.jonahbauer.wizard.common.messages.server;
|
||||
exports eu.jonahbauer.wizard.common.model;
|
||||
exports eu.jonahbauer.wizard.common.util;
|
||||
|
||||
opens eu.jonahbauer.wizard.common.messages.client to com.fasterxml.jackson.databind;
|
||||
opens eu.jonahbauer.wizard.common.messages.data to com.fasterxml.jackson.databind;
|
||||
opens eu.jonahbauer.wizard.common.messages.observer to com.fasterxml.jackson.databind;
|
||||
opens eu.jonahbauer.wizard.common.messages.player to com.fasterxml.jackson.databind;
|
||||
opens eu.jonahbauer.wizard.common.messages.server to com.fasterxml.jackson.databind;
|
||||
|
||||
requires com.fasterxml.jackson.databind;
|
||||
requires com.fasterxml.jackson.module.paramnames;
|
||||
|
||||
requires static lombok;
|
||||
requires static org.jetbrains.annotations;
|
||||
}
|
Reference in New Issue
Block a user