chore[orm]: simplify MapKeyCodec method

This commit is contained in:
godotg
2024-06-17 16:18:18 +08:00
parent 1eda19e6bf
commit 193eb40dbe
10 changed files with 19 additions and 92 deletions
@@ -34,9 +34,7 @@ public class BaseTypeKeyMapCodec<K,V> implements Codec<Map<K, V>> {
for (var entry : map.entrySet()) {
var key = entry.getKey();
var value = entry.getValue();
MapKeyCodec<K> codec = (MapKeyCodec<K>) BaseTypeEnum.getCodec(keyCodec.getEncoderClass());
String keyValue = codec.encode(key);
writer.writeName(keyValue);
writer.writeName(key.toString());
if (value == null) {
writer.writeNull();
} else {
@@ -6,17 +6,8 @@ package com.zfoo.orm.codec;
* @Date2024/6/17 13:51
*/
public interface MapKeyCodec<K> {
/**
* 编码
* @param value
* @return
*/
String encode(K value);
/**
* 解析
* @param text
* @return
*/
K decode(String text);
K decode(String key);
}
@@ -7,31 +7,9 @@ import com.zfoo.orm.codec.MapKeyCodec;
* @Date2024/6/17 11:32
*/
public class BooleanMapCodec implements MapKeyCodec<Boolean> {
@Override
public String encode(Boolean value) {
return value ? "True" : "False";
public Boolean decode(String key) {
return Boolean.valueOf(key);
}
@Override
public Boolean decode(String text) {
if (text == null) {
throw new java.lang.NullPointerException();
} else if (isValidName(true, text)) {
return true;
} else if (isValidName(false, text)) {
return false;
} else {
throw new java.lang.IllegalArgumentException(text);
}
}
private String getValidName(boolean value) {
return value ? "True" : "False";
}
private boolean isValidName(boolean value, String name) {
return getValidName(value).equalsIgnoreCase(name);
}
}
@@ -9,12 +9,7 @@ import com.zfoo.orm.codec.MapKeyCodec;
*/
public class ByteMapCodec implements MapKeyCodec<Byte> {
@Override
public String encode(Byte value) {
return value.toString();
}
@Override
public Byte decode(String text) {
return (text == null) ? null : Byte.decode(text);
public Byte decode(String key) {
return Byte.valueOf(key);
}
}
@@ -1,7 +1,6 @@
package com.zfoo.orm.codec.basetype;
import com.zfoo.orm.codec.MapKeyCodec;
import org.springframework.util.StringUtils;
/**
@@ -9,17 +8,10 @@ import org.springframework.util.StringUtils;
* @Date2024/6/17 11:34
*/
public class CharacterMapCodec implements MapKeyCodec<Character> {
@Override
public String encode(Character value) {
return value.toString();
}
@Override
public Character decode(String text) {
if (!StringUtils.hasLength(text)) {
return null;
} else {
return text.charAt(0);
}
public Character decode(String key) {
return key.charAt(0);
}
}
@@ -9,12 +9,7 @@ import com.zfoo.orm.codec.MapKeyCodec;
public class DoubleMapCodec implements MapKeyCodec<Double> {
@Override
public String encode(Double value) {
return value.toString();
}
@Override
public Double decode(String text) {
return (text == null) ? null : Double.valueOf(text);
public Double decode(String key) {
return Double.valueOf(key);
}
}
@@ -9,12 +9,7 @@ import com.zfoo.orm.codec.MapKeyCodec;
public class FloatMapCodec implements MapKeyCodec<Float> {
@Override
public String encode(Float value) {
return value.toString();
}
@Override
public Float decode(String text) {
return (text == null) ? null : Float.valueOf(text);
public Float decode(String key) {
return Float.valueOf(key);
}
}
@@ -10,14 +10,8 @@ import com.zfoo.orm.codec.MapKeyCodec;
*/
public class IntMapCodec implements MapKeyCodec<Integer> {
@Override
public String encode(Integer value) {
return value.toString();
}
@Override
public Integer decode(String text) {
return (text == null) ? null : Integer.parseInt(text);
public Integer decode(String key) {
return Integer.valueOf(key);
}
}
@@ -10,14 +10,8 @@ import com.zfoo.orm.codec.MapKeyCodec;
*/
public class LongMapCodec implements MapKeyCodec<Long> {
@Override
public String encode(Long value) {
return value.toString();
}
@Override
public Long decode(String text) {
return (text == null) ? null : Long.parseLong(text);
public Long decode(String key) {
return Long.valueOf(key);
}
}
@@ -8,12 +8,7 @@ import com.zfoo.orm.codec.MapKeyCodec;
*/
public class ShortMapCodec implements MapKeyCodec<Short> {
@Override
public String encode(Short value) {
return value.toString();
}
@Override
public Short decode(String text) {
return (text == null) ? null : Short.parseShort(text);
public Short decode(String key) {
return Short.valueOf(key);
}
}