Skip to content

Commit 8058807

Browse files
committed
set default mode to reflection
1 parent 64498f6 commit 8058807

File tree

29 files changed

+447
-57
lines changed

29 files changed

+447
-57
lines changed

demo/pom.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
<groupId>org.javassist</groupId>
4646
<artifactId>javassist</artifactId>
4747
<version>3.21.0-GA</version>
48-
<scope>test</scope>
4948
</dependency>
5049
<dependency>
5150
<groupId>com.jsoniter</groupId>
@@ -97,8 +96,8 @@
9796
<artifactId>maven-compiler-plugin</artifactId>
9897
<version>3.6.0</version>
9998
<configuration>
100-
<source>1.7</source>
101-
<target>1.7</target>
99+
<source>1.8</source>
100+
<target>1.8</target>
102101
<encoding>UTF-8</encoding>
103102
</configuration>
104103
</plugin>

demo/src/main/java/com/jsoniter/demo/Demo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ public class Demo {
99
static {
1010
// ensure the jsoniter is properly setup
1111
new DemoCodegenConfig().setup();
12-
JsonIterator.setMode(DecodingMode.REFLECTION_MODE);
13-
JsonStream.setMode(EncodingMode.REFLECTION_MODE);
12+
JsonIterator.setMode(DecodingMode.STATIC_MODE);
13+
JsonStream.setMode(EncodingMode.STATIC_MODE);
1414
JsonStream.defaultIndentionStep = 2;
1515
}
1616

demo/src/main/java/com/jsoniter/demo/DemoCodegenConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.jsoniter.JsonIterator;
44
import com.jsoniter.StaticCodeGenerator;
5+
import com.jsoniter.output.JsonStream;
56
import com.jsoniter.spi.CodegenConfig;
67
import com.jsoniter.spi.Decoder;
78
import com.jsoniter.spi.JsoniterSpi;
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package decoder.com.jsoniter.demo;
2+
public class User implements com.jsoniter.spi.Decoder {
3+
public static java.lang.Object decode_(com.jsoniter.JsonIterator iter) throws java.io.IOException { if (iter.readNull()) { com.jsoniter.CodegenAccess.resetExistingObject(iter); return null; }
4+
com.jsoniter.demo.User obj = (com.jsoniter.CodegenAccess.existingObject(iter) == null ? new com.jsoniter.demo.User() : (com.jsoniter.demo.User)com.jsoniter.CodegenAccess.resetExistingObject(iter));
5+
if (!com.jsoniter.CodegenAccess.readObjectStart(iter)) { return obj; }
6+
switch (com.jsoniter.CodegenAccess.readObjectFieldAsHash(iter)) {
7+
case -799547430:
8+
obj.firstName = (java.lang.String)iter.readString();
9+
break;
10+
case -1078100014:
11+
obj.lastName = (java.lang.String)iter.readString();
12+
break;
13+
case -768634731:
14+
obj.score = com.jsoniter.CodegenAccess.readInt("score@decoder.com.jsoniter.demo.User", iter);
15+
break;
16+
default:
17+
iter.skip();
18+
}
19+
while (com.jsoniter.CodegenAccess.nextToken(iter) == ',') {
20+
switch (com.jsoniter.CodegenAccess.readObjectFieldAsHash(iter)) {
21+
case -799547430:
22+
obj.firstName = (java.lang.String)iter.readString();
23+
continue;
24+
case -1078100014:
25+
obj.lastName = (java.lang.String)iter.readString();
26+
continue;
27+
case -768634731:
28+
obj.score = com.jsoniter.CodegenAccess.readInt("score@decoder.com.jsoniter.demo.User", iter);
29+
continue;
30+
}
31+
iter.skip();
32+
}
33+
return obj;
34+
}public java.lang.Object decode(com.jsoniter.JsonIterator iter) throws java.io.IOException {
35+
return decode_(iter);
36+
}
37+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package decoder;
2+
public class int_array implements com.jsoniter.spi.Decoder {
3+
public static java.lang.Object decode_(com.jsoniter.JsonIterator iter) throws java.io.IOException { com.jsoniter.CodegenAccess.resetExistingObject(iter);
4+
if (iter.readNull()) { return null; }
5+
if (!com.jsoniter.CodegenAccess.readArrayStart(iter)) {
6+
return new int[0];
7+
}
8+
int a1 = iter.readInt();
9+
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
10+
return new int[]{ a1 };
11+
}
12+
int a2 = iter.readInt();
13+
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
14+
return new int[]{ a1, a2 };
15+
}
16+
int a3 = iter.readInt();
17+
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
18+
return new int[]{ a1, a2, a3 };
19+
}
20+
int a4 = (int) iter.readInt();
21+
int[] arr = new int[8];
22+
arr[0] = a1;
23+
arr[1] = a2;
24+
arr[2] = a3;
25+
arr[3] = a4;
26+
int i = 4;
27+
while (com.jsoniter.CodegenAccess.nextToken(iter) == ',') {
28+
if (i == arr.length) {
29+
int[] newArr = new int[arr.length * 2];
30+
System.arraycopy(arr, 0, newArr, 0, arr.length);
31+
arr = newArr;
32+
}
33+
arr[i++] = iter.readInt();
34+
}
35+
int[] result = new int[i];
36+
System.arraycopy(arr, 0, result, 0, i);
37+
return result;
38+
}public java.lang.Object decode(com.jsoniter.JsonIterator iter) throws java.io.IOException {
39+
return decode_(iter);
40+
}
41+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package decoder.java.util.List_com.jsoniter.demo;
2+
public class User implements com.jsoniter.spi.Decoder {
3+
public static java.lang.Object decode_(com.jsoniter.JsonIterator iter) throws java.io.IOException { java.util.ArrayList col = (java.util.ArrayList)com.jsoniter.CodegenAccess.resetExistingObject(iter);
4+
if (iter.readNull()) { return null; }
5+
if (!com.jsoniter.CodegenAccess.readArrayStart(iter)) {
6+
return col == null ? new java.util.ArrayList(0): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
7+
}
8+
Object a1 = decoder.com.jsoniter.demo.User.decode_(iter);
9+
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
10+
java.util.ArrayList obj = col == null ? new java.util.ArrayList(1): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
11+
obj.add(a1);
12+
return obj;
13+
}
14+
Object a2 = decoder.com.jsoniter.demo.User.decode_(iter);
15+
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
16+
java.util.ArrayList obj = col == null ? new java.util.ArrayList(2): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
17+
obj.add(a1);
18+
obj.add(a2);
19+
return obj;
20+
}
21+
Object a3 = decoder.com.jsoniter.demo.User.decode_(iter);
22+
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
23+
java.util.ArrayList obj = col == null ? new java.util.ArrayList(3): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
24+
obj.add(a1);
25+
obj.add(a2);
26+
obj.add(a3);
27+
return obj;
28+
}
29+
Object a4 = decoder.com.jsoniter.demo.User.decode_(iter);
30+
java.util.ArrayList obj = col == null ? new java.util.ArrayList(8): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
31+
obj.add(a1);
32+
obj.add(a2);
33+
obj.add(a3);
34+
obj.add(a4);
35+
while (com.jsoniter.CodegenAccess.nextToken(iter) == ',') {
36+
obj.add(decoder.com.jsoniter.demo.User.decode_(iter));
37+
}
38+
return obj;
39+
}public java.lang.Object decode(com.jsoniter.JsonIterator iter) throws java.io.IOException {
40+
return decode_(iter);
41+
}
42+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package decoder.java.util.List_java.lang;
2+
public class Integer implements com.jsoniter.spi.Decoder {
3+
public static java.lang.Object decode_(com.jsoniter.JsonIterator iter) throws java.io.IOException { java.util.ArrayList col = (java.util.ArrayList)com.jsoniter.CodegenAccess.resetExistingObject(iter);
4+
if (iter.readNull()) { return null; }
5+
if (!com.jsoniter.CodegenAccess.readArrayStart(iter)) {
6+
return col == null ? new java.util.ArrayList(0): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
7+
}
8+
Object a1 = java.lang.Integer.valueOf(iter.readInt());
9+
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
10+
java.util.ArrayList obj = col == null ? new java.util.ArrayList(1): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
11+
obj.add(a1);
12+
return obj;
13+
}
14+
Object a2 = java.lang.Integer.valueOf(iter.readInt());
15+
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
16+
java.util.ArrayList obj = col == null ? new java.util.ArrayList(2): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
17+
obj.add(a1);
18+
obj.add(a2);
19+
return obj;
20+
}
21+
Object a3 = java.lang.Integer.valueOf(iter.readInt());
22+
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
23+
java.util.ArrayList obj = col == null ? new java.util.ArrayList(3): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
24+
obj.add(a1);
25+
obj.add(a2);
26+
obj.add(a3);
27+
return obj;
28+
}
29+
Object a4 = java.lang.Integer.valueOf(iter.readInt());
30+
java.util.ArrayList obj = col == null ? new java.util.ArrayList(8): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
31+
obj.add(a1);
32+
obj.add(a2);
33+
obj.add(a3);
34+
obj.add(a4);
35+
while (com.jsoniter.CodegenAccess.nextToken(iter) == ',') {
36+
obj.add(java.lang.Integer.valueOf(iter.readInt()));
37+
}
38+
return obj;
39+
}public java.lang.Object decode(com.jsoniter.JsonIterator iter) throws java.io.IOException {
40+
return decode_(iter);
41+
}
42+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package decoder.java.util.Map_java.lang.String_java.lang;
2+
public class Object implements com.jsoniter.spi.Decoder {
3+
public static java.lang.Object decode_(com.jsoniter.JsonIterator iter) throws java.io.IOException { java.util.HashMap map = (java.util.HashMap)com.jsoniter.CodegenAccess.resetExistingObject(iter);
4+
if (iter.readNull()) { return null; }
5+
if (map == null) { map = new java.util.HashMap(); }
6+
if (!com.jsoniter.CodegenAccess.readObjectStart(iter)) {
7+
return map;
8+
}
9+
String field = com.jsoniter.CodegenAccess.readObjectFieldAsString(iter);
10+
map.put(field, iter.read());
11+
while (com.jsoniter.CodegenAccess.nextToken(iter) == ',') {
12+
field = com.jsoniter.CodegenAccess.readObjectFieldAsString(iter);
13+
map.put(field, iter.read());
14+
}
15+
return map;
16+
}public java.lang.Object decode(com.jsoniter.JsonIterator iter) throws java.io.IOException {
17+
return decode_(iter);
18+
}
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package encoder.com.jsoniter.demo;
2+
public class User implements com.jsoniter.spi.Encoder {
3+
public static void encode_(com.jsoniter.demo.User obj, com.jsoniter.output.JsonStream stream) throws java.io.IOException {
4+
if (obj == null) { stream.writeNull(); return; }
5+
stream.writeObjectStart();
6+
stream.writeObjectField("firstName");
7+
stream.writeVal((java.lang.String)obj.firstName);
8+
stream.writeMore();
9+
stream.writeObjectField("lastName");
10+
stream.writeVal((java.lang.String)obj.lastName);
11+
stream.writeMore();
12+
stream.writeObjectField("score");
13+
stream.writeVal((int)obj.score);
14+
stream.writeObjectEnd();
15+
}
16+
public void encode(java.lang.Object obj, com.jsoniter.output.JsonStream stream) throws java.io.IOException {
17+
encode_((com.jsoniter.demo.User)obj, stream);
18+
}
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package encoder;
2+
public class int_array implements com.jsoniter.spi.Encoder {
3+
public static void encode_(java.lang.Object obj, com.jsoniter.output.JsonStream stream) throws java.io.IOException {
4+
if (obj == null) { stream.writeNull(); return; }
5+
int[] arr = (int[])obj;
6+
if (arr.length == 0) { stream.writeEmptyArray(); return; }
7+
stream.writeArrayStart();
8+
int i = 0;
9+
stream.writeVal((int)arr[i++]);
10+
while (i < arr.length) {
11+
stream.writeMore();
12+
stream.writeVal((int)arr[i++]);
13+
}
14+
stream.writeArrayEnd();
15+
}
16+
public void encode(java.lang.Object obj, com.jsoniter.output.JsonStream stream) throws java.io.IOException {
17+
encode_((int[])obj, stream);
18+
}
19+
}

0 commit comments

Comments
 (0)