Skip to content

Commit fd39db8

Browse files
committed
add config name prefix to codegen class
1 parent 73d20cb commit fd39db8

7 files changed

Lines changed: 28 additions & 15 deletions

File tree

src/main/java/com/jsoniter/CodegenImplObjectHash.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import java.util.*;
66

7-
public class CodegenImplObjectHash {
7+
class CodegenImplObjectHash {
88

99
// the implementation is from dsljson, it is the fastest although has the risk not matching field strictly
1010
public static String genObjectUsingHash(Class clazz, ClassDescriptor desc) {

src/main/java/com/jsoniter/ReflectionDecoderFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import java.util.Collection;
77
import java.util.Map;
88

9-
public class ReflectionDecoderFactory {
9+
class ReflectionDecoderFactory {
1010
public static Decoder create(Class clazz, Type... typeArgs) {
1111
if (clazz.isArray()) {
1212
return new ReflectionArrayDecoder(clazz);

src/main/java/com/jsoniter/annotation/JsoniterConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public JsoniterConfig(Builder builder) {
2121

2222
@Override
2323
public String configName() {
24-
return null;
24+
return configName;
2525
}
2626

2727
protected Builder builder() {

src/main/java/com/jsoniter/spi/JsoniterSpi.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ private synchronized static String assignNewConfigName(Object obj) {
3737
return configName;
3838
}
3939
configIndex++;
40-
configName = "cfg" + configIndex;
40+
configName = "jsoniter_codegen.cfg" + configIndex + ".";
4141
HashMap<Object, String> newCache = new HashMap<Object, String>(configNames);
4242
newCache.put(obj, configName);
4343
configNames = newCache;
@@ -523,4 +523,8 @@ public static void setCurrentConfig(Config val) {
523523
public static void clearCurrentConfig() {
524524
currentConfig.set(JsoniterConfig.INSTANCE);
525525
}
526+
527+
public static Config getCurrentConfig() {
528+
return currentConfig.get();
529+
}
526530
}

src/main/java/com/jsoniter/spi/TypeLiteral.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public enum NativeType {
5656
final Type type;
5757
final String decoderCacheKey;
5858
final String encoderCacheKey;
59+
// TODO: remove native type
5960
final NativeType nativeType;
6061

6162
/**
@@ -180,11 +181,19 @@ public Type getType() {
180181
}
181182

182183
public String getDecoderCacheKey() {
183-
return decoderCacheKey;
184+
return getDecoderCacheKey(JsoniterSpi.getCurrentConfig());
185+
}
186+
187+
public String getDecoderCacheKey(Config config) {
188+
return config.configName() + decoderCacheKey;
184189
}
185190

186191
public String getEncoderCacheKey() {
187-
return encoderCacheKey;
192+
return getEncoderCacheKey(JsoniterSpi.getCurrentConfig());
193+
}
194+
195+
public String getEncoderCacheKey(Config config) {
196+
return config.configName() + encoderCacheKey;
188197
}
189198

190199
public NativeType getNativeType() {

src/test/java/com/jsoniter/TestArray.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
public class TestArray extends TestCase {
1616

1717
static {
18-
// JsonIterator.setMode(DecodingMode.REFLECTION_MODE);
18+
// JsonIterator.setMode(DecodingMode.DYNAMIC_MODE_AND_MATCH_FIELD_WITH_HASH);
1919
}
2020

2121
public void test_empty_array() throws IOException {

src/test/java/com/jsoniter/TestGenerics.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,14 @@ public void test_generic_super_class() throws IOException {
105105
fieldDecoderCacheKeys.put(field.name, field.valueTypeLiteral.getDecoderCacheKey());
106106
}
107107
assertEquals(new HashMap<String, String>() {{
108-
put("field1", "decoder.java.util.List_java.lang.String");
109-
put("field2", "decoder.java.lang.Integer_array");
110-
put("field3", "decoder.java.util.List_java.lang.Integer_array");
111-
put("field4", "decoder.java.util.List_java.lang.String_array");
112-
put("field5", "decoder.java.lang.Float");
113-
put("field6", "decoder.java.util.List_java.util.Map_java.lang.String_java.util.List_java.lang.Integer");
114-
put("field7", "decoder.java.lang.Object");
115-
put("field8", "decoder.java.util.List_java.lang.String");
108+
put("field1", "jsoniter_codegen.cfg1.decoder.java.util.List_java.lang.String");
109+
put("field2", "jsoniter_codegen.cfg1.decoder.java.lang.Integer_array");
110+
put("field3", "jsoniter_codegen.cfg1.decoder.java.util.List_java.lang.Integer_array");
111+
put("field4", "jsoniter_codegen.cfg1.decoder.java.util.List_java.lang.String_array");
112+
put("field5", "jsoniter_codegen.cfg1.decoder.java.lang.Float");
113+
put("field6", "jsoniter_codegen.cfg1.decoder.java.util.List_java.util.Map_java.lang.String_java.util.List_java.lang.Integer");
114+
put("field7", "jsoniter_codegen.cfg1.decoder.java.lang.Object");
115+
put("field8", "jsoniter_codegen.cfg1.decoder.java.util.List_java.lang.String");
116116
}}, fieldDecoderCacheKeys);
117117
}
118118
}

0 commit comments

Comments
 (0)