forked from json-iterator/java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStaticCodeGenerator.java
More file actions
25 lines (22 loc) · 1.04 KB
/
StaticCodeGenerator.java
File metadata and controls
25 lines (22 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.jsoniter;
import com.jsoniter.output.EncodingMode;
import com.jsoniter.output.JsonStream;
import com.jsoniter.spi.CodegenConfig;
import com.jsoniter.spi.JsonException;
import java.io.File;
public class StaticCodeGenerator {
public static void main(String[] args) throws Exception {
String configClassName = args[0];
String configJavaFile = configClassName.replace('.', '/') + ".java";
if (!new File(configJavaFile).exists()) {
throw new JsonException("must execute static code generator in the java source code directory which contains: " + configJavaFile);
}
Class<?> clazz = Class.forName(configClassName);
CodegenConfig config = (CodegenConfig) clazz.newInstance();
JsonIterator.setMode(DecodingMode.DYNAMIC_MODE_AND_MATCH_FIELD_WITH_HASH);
JsonStream.setMode(EncodingMode.DYNAMIC_MODE);
config.setup();
CodegenAccess.staticGenDecoders(config.whatToCodegen());
com.jsoniter.output.CodegenAccess.staticGenEncoders(config.whatToCodegen());
}
}