Skip to content

Commit

Permalink
fix static code gen
Browse files Browse the repository at this point in the history
  • Loading branch information
taowen committed Dec 12, 2017
1 parent edf522d commit a4068c9
Show file tree
Hide file tree
Showing 82 changed files with 194 additions and 7,190 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@
/android-demo/build
/android-demo/.gradle
/android-demo/local.properties
/android-demo/gradlew
/android-demo/gradle
/android-demo/gradlew.bat
2 changes: 2 additions & 0 deletions android-demo/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
/build
/.idea
/gradle.properties
2 changes: 2 additions & 0 deletions android-demo/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ dependencies {
buildscript {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0' //last version Jan 2016
Expand All @@ -44,5 +45,6 @@ buildscript {
allprojects {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
google()
}
}
4 changes: 2 additions & 2 deletions demo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jsoniter</groupId>
<version>0.9.8-SNAPSHOT</version>
<version>0.9.19-SNAPSHOT</version>
<artifactId>jsoniter-demo</artifactId>
<name>json iterator demo</name>
<description>jsoniter (json-iterator) is fast and flexible JSON parser available in Java and Go</description>
Expand Down Expand Up @@ -49,7 +49,7 @@
<dependency>
<groupId>com.jsoniter</groupId>
<artifactId>jsoniter</artifactId>
<version>0.9.11</version>
<version>0.9.19-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
Expand Down
5 changes: 1 addition & 4 deletions demo/src/main/java/com/jsoniter/demo/Demo.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
package com.jsoniter.demo;

import com.jsoniter.DecodingMode;
import com.jsoniter.JsonIterator;
import com.jsoniter.output.EncodingMode;
import com.jsoniter.output.JsonStream;
import com.jsoniter.spi.DecodingMode;

public class Demo {
static {
// ensure the jsoniter is properly setup
new DemoCodegenConfig().setup();
JsonIterator.setMode(DecodingMode.STATIC_MODE);
JsonStream.setMode(EncodingMode.STATIC_MODE);
JsonStream.defaultIndentionStep = 2;
}

public static void main(String[] args) {
Expand Down
16 changes: 10 additions & 6 deletions demo/src/main/java/com/jsoniter/demo/DemoCodegenConfig.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
package com.jsoniter.demo;

import com.jsoniter.JsonIterator;
import com.jsoniter.StaticCodeGenerator;
import com.jsoniter.annotation.JsoniterAnnotationSupport;
import com.jsoniter.spi.CodegenConfig;
import com.jsoniter.output.EncodingMode;
import com.jsoniter.output.JsonStream;
import com.jsoniter.spi.Decoder;
import com.jsoniter.spi.DecodingMode;
import com.jsoniter.spi.JsoniterSpi;
import com.jsoniter.spi.TypeLiteral;
import com.jsoniter.static_codegen.StaticCodegen;
import com.jsoniter.static_codegen.StaticCodegenConfig;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public class DemoCodegenConfig implements CodegenConfig {
public class DemoCodegenConfig implements StaticCodegenConfig {

@Override
public void setup() {
JsoniterAnnotationSupport.enable();
// register custom decoder or extensions before codegen
// so that we doing codegen, we know in which case, we need to callback
JsonIterator.setMode(DecodingMode.STATIC_MODE);
JsonStream.setMode(EncodingMode.STATIC_MODE);
JsonStream.setIndentionStep(2);
JsoniterSpi.registerPropertyDecoder(User.class, "score", new Decoder.IntDecoder() {
@Override
public int decodeInt(JsonIterator iter) throws IOException {
Expand All @@ -45,7 +49,7 @@ public TypeLiteral[] whatToCodegen() {
}

public static void main(String[] args) throws Exception {
StaticCodeGenerator.main(new String[]{
StaticCodegen.main(new String[]{
DemoCodegenConfig.class.getCanonicalName()
,"/tmp"
});
Expand Down
16 changes: 0 additions & 16 deletions demo/src/main/java/encoder/com/jsoniter/demo/User.java

This file was deleted.

21 changes: 0 additions & 21 deletions demo/src/main/java/encoder/int_array.java

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package decoder.com.jsoniter.demo;
package jsoniter_codegen.cfg1173796797.decoder.com.jsoniter.demo;
public class User implements com.jsoniter.spi.Decoder {
public static java.lang.Object decode_(com.jsoniter.JsonIterator iter) throws java.io.IOException { java.lang.Object existingObj = com.jsoniter.CodegenAccess.resetExistingObject(iter);
byte nextToken = com.jsoniter.CodegenAccess.readByte(iter);
Expand Down Expand Up @@ -39,7 +39,7 @@ public class User implements com.jsoniter.spi.Decoder {
_firstName_ = (java.lang.String)iter.readString();
continue;
case -768634731:
_score_ = (int)com.jsoniter.CodegenAccess.readInt("[email protected]", iter);
_score_ = (int)com.jsoniter.CodegenAccess.readInt("score@jsoniter_codegen.cfg1173796797.decoder.com.jsoniter.demo.User", iter);
continue;
}
iter.skip();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package decoder;
package jsoniter_codegen.cfg1173796797.decoder;
public class int_array implements com.jsoniter.spi.Decoder {
public static java.lang.Object decode_(com.jsoniter.JsonIterator iter) throws java.io.IOException { com.jsoniter.CodegenAccess.resetExistingObject(iter);
byte nextToken = com.jsoniter.CodegenAccess.readByte(iter);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
package decoder.java.util.List_com.jsoniter.demo;
package jsoniter_codegen.cfg1173796797.decoder.java.util.List_com.jsoniter.demo;
public class User implements com.jsoniter.spi.Decoder {
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);
if (iter.readNull()) { com.jsoniter.CodegenAccess.resetExistingObject(iter); return null; }
if (!com.jsoniter.CodegenAccess.readArrayStart(iter)) {
return col == null ? new java.util.ArrayList(0): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
}
Object a1 = (com.jsoniter.demo.User)decoder.com.jsoniter.demo.User.decode_(iter);
Object a1 = (com.jsoniter.demo.User)jsoniter_codegen.cfg1173796797.decoder.com.jsoniter.demo.User.decode_(iter);
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
java.util.ArrayList obj = col == null ? new java.util.ArrayList(1): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
obj.add(a1);
return obj;
}
Object a2 = (com.jsoniter.demo.User)decoder.com.jsoniter.demo.User.decode_(iter);
Object a2 = (com.jsoniter.demo.User)jsoniter_codegen.cfg1173796797.decoder.com.jsoniter.demo.User.decode_(iter);
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
java.util.ArrayList obj = col == null ? new java.util.ArrayList(2): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
obj.add(a1);
obj.add(a2);
return obj;
}
Object a3 = (com.jsoniter.demo.User)decoder.com.jsoniter.demo.User.decode_(iter);
Object a3 = (com.jsoniter.demo.User)jsoniter_codegen.cfg1173796797.decoder.com.jsoniter.demo.User.decode_(iter);
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
java.util.ArrayList obj = col == null ? new java.util.ArrayList(3): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
obj.add(a1);
obj.add(a2);
obj.add(a3);
return obj;
}
Object a4 = (com.jsoniter.demo.User)decoder.com.jsoniter.demo.User.decode_(iter);
Object a4 = (com.jsoniter.demo.User)jsoniter_codegen.cfg1173796797.decoder.com.jsoniter.demo.User.decode_(iter);
java.util.ArrayList obj = col == null ? new java.util.ArrayList(8): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
obj.add(a1);
obj.add(a2);
obj.add(a3);
obj.add(a4);
while (com.jsoniter.CodegenAccess.nextToken(iter) == ',') {
obj.add((com.jsoniter.demo.User)decoder.com.jsoniter.demo.User.decode_(iter));
obj.add((com.jsoniter.demo.User)jsoniter_codegen.cfg1173796797.decoder.com.jsoniter.demo.User.decode_(iter));
}
return obj;
}public java.lang.Object decode(com.jsoniter.JsonIterator iter) throws java.io.IOException {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
package decoder.java.util.List_java.lang;
package jsoniter_codegen.cfg1173796797.decoder.java.util.List_java.lang;
public class Integer implements com.jsoniter.spi.Decoder {
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);
if (iter.readNull()) { com.jsoniter.CodegenAccess.resetExistingObject(iter); return null; }
if (!com.jsoniter.CodegenAccess.readArrayStart(iter)) {
return col == null ? new java.util.ArrayList(0): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
}
Object a1 = (java.lang.Integer)java.lang.Integer.valueOf(iter.readInt());
Object a1 = (java.lang.Integer)(iter.readNull() ? null : java.lang.Integer.valueOf(iter.readInt()));
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
java.util.ArrayList obj = col == null ? new java.util.ArrayList(1): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
obj.add(a1);
return obj;
}
Object a2 = (java.lang.Integer)java.lang.Integer.valueOf(iter.readInt());
Object a2 = (java.lang.Integer)(iter.readNull() ? null : java.lang.Integer.valueOf(iter.readInt()));
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
java.util.ArrayList obj = col == null ? new java.util.ArrayList(2): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
obj.add(a1);
obj.add(a2);
return obj;
}
Object a3 = (java.lang.Integer)java.lang.Integer.valueOf(iter.readInt());
Object a3 = (java.lang.Integer)(iter.readNull() ? null : java.lang.Integer.valueOf(iter.readInt()));
if (com.jsoniter.CodegenAccess.nextToken(iter) != ',') {
java.util.ArrayList obj = col == null ? new java.util.ArrayList(3): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
obj.add(a1);
obj.add(a2);
obj.add(a3);
return obj;
}
Object a4 = (java.lang.Integer)java.lang.Integer.valueOf(iter.readInt());
Object a4 = (java.lang.Integer)(iter.readNull() ? null : java.lang.Integer.valueOf(iter.readInt()));
java.util.ArrayList obj = col == null ? new java.util.ArrayList(8): (java.util.ArrayList)com.jsoniter.CodegenAccess.reuseCollection(col);
obj.add(a1);
obj.add(a2);
obj.add(a3);
obj.add(a4);
while (com.jsoniter.CodegenAccess.nextToken(iter) == ',') {
obj.add((java.lang.Integer)java.lang.Integer.valueOf(iter.readInt()));
obj.add((java.lang.Integer)(iter.readNull() ? null : java.lang.Integer.valueOf(iter.readInt())));
}
return obj;
}public java.lang.Object decode(com.jsoniter.JsonIterator iter) throws java.io.IOException {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package decoder.java.util.Map_java.lang.String_java.lang;
package jsoniter_codegen.cfg1173796797.decoder.java.util.Map_java.lang.String_java.lang;
public class Object implements com.jsoniter.spi.Decoder {
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);
if (iter.readNull()) { return null; }
Expand All @@ -7,8 +7,8 @@ public class Object implements com.jsoniter.spi.Decoder {
return map;
}
do {
String field = com.jsoniter.CodegenAccess.readObjectFieldAsString(iter);
map.put(field, (java.lang.Object)iter.read());
java.lang.Object mapKey = com.jsoniter.CodegenAccess.readObjectFieldAsString(iter);
map.put(mapKey, (java.lang.Object)iter.read());
} while (com.jsoniter.CodegenAccess.nextToken(iter) == ',');
return map;
}public java.lang.Object decode(com.jsoniter.JsonIterator iter) throws java.io.IOException {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package jsoniter_codegen.cfg1173796797.encoder.com.jsoniter.demo;
public class User implements com.jsoniter.spi.Encoder {
public void encode(java.lang.Object obj, com.jsoniter.output.JsonStream stream) throws java.io.IOException {
if (obj == null) { stream.writeNull(); return; }
encode_((com.jsoniter.demo.User)obj, stream);
}
public static void encode_(com.jsoniter.demo.User obj, com.jsoniter.output.JsonStream stream) throws java.io.IOException {
stream.writeObjectStart();
stream.writeIndention();
stream.writeObjectField("firstName");
stream.writeVal((java.lang.String)obj.firstName);
stream.writeMore();
stream.writeObjectField("lastName");
stream.writeVal((java.lang.String)obj.lastName);
stream.writeMore();
stream.writeObjectField("score");
stream.writeVal((int)obj.score);
stream.writeObjectEnd();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package jsoniter_codegen.cfg1173796797.encoder;
public class int_array implements com.jsoniter.spi.Encoder {
public void encode(java.lang.Object obj, com.jsoniter.output.JsonStream stream) throws java.io.IOException {
if (obj == null) { stream.writeNull(); return; }
encode_((int[])obj, stream);
}
public static void encode_(java.lang.Object obj, com.jsoniter.output.JsonStream stream) throws java.io.IOException {
int[] arr = (int[])obj;
if (arr.length == 0) { stream.write((byte)'[', (byte)']'); return; }
stream.writeArrayStart(); stream.writeIndention();
int i = 0;
int e = arr[i++];
stream.writeVal((int)e);
while (i < arr.length) {
stream.writeMore();
e = arr[i++];
stream.writeVal((int)e);
}
stream.writeArrayEnd();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package jsoniter_codegen.cfg1173796797.encoder.java.util.List_com.jsoniter.demo;
public class User implements com.jsoniter.spi.Encoder {
public void encode(java.lang.Object obj, com.jsoniter.output.JsonStream stream) throws java.io.IOException {
if (obj == null) { stream.writeNull(); return; }
encode_((java.util.List)obj, stream);
}
public static void encode_(java.lang.Object obj, com.jsoniter.output.JsonStream stream) throws java.io.IOException {
java.util.List list = (java.util.List)obj;
int size = list.size();
if (size == 0) { stream.write((byte)'[', (byte)']'); return; }
stream.writeArrayStart(); stream.writeIndention();
java.lang.Object e = list.get(0);
if (e == null) { stream.writeNull(); } else {

jsoniter_codegen.cfg1173796797.encoder.com.jsoniter.demo.User.encode_((com.jsoniter.demo.User)e, stream);

}
for (int i = 1; i < size; i++) {
stream.writeMore();
e = list.get(i);
if (e == null) { stream.writeNull(); } else {

jsoniter_codegen.cfg1173796797.encoder.com.jsoniter.demo.User.encode_((com.jsoniter.demo.User)e, stream);

}
}
stream.writeArrayEnd();
}
}
Loading

0 comments on commit a4068c9

Please sign in to comment.