|
1 | | -package com.jsoniter; |
| 1 | +package com.jsoniter.static_codegen; |
2 | 2 |
|
| 3 | +import com.jsoniter.CodegenAccess; |
| 4 | +import com.jsoniter.DecodingMode; |
| 5 | +import com.jsoniter.JsonIterator; |
3 | 6 | import com.jsoniter.output.EncodingMode; |
4 | 7 | import com.jsoniter.output.JsonStream; |
5 | | -import com.jsoniter.spi.CodegenConfig; |
6 | 8 | import com.jsoniter.spi.JsonException; |
7 | | -import com.jsoniter.spi.StaticCodegenTarget; |
8 | 9 |
|
9 | 10 | import java.io.File; |
10 | | -import java.nio.file.Path; |
11 | 11 |
|
12 | | -public class StaticCodeGenerator { |
| 12 | +public class StaticCodegen { |
13 | 13 | public static void main(String[] args) throws Exception { |
14 | 14 | if (args.length == 0) { |
15 | | - System.out.println("StaticCodeGenerator configClassName [outputDir]"); |
| 15 | + System.out.println("StaticCodegen configClassName [outputDir]"); |
16 | 16 | System.out.println("configClassName: like a.b.Config, a class defining what to codegen"); |
17 | 17 | System.out.println("outputDir: if not specified, will write to source directory of configClass"); |
18 | 18 | return; |
19 | 19 | } |
20 | 20 | String configClassName = args[0]; |
21 | 21 | String configJavaFile = configClassName.replace('.', '/') + ".java"; |
22 | | - StaticCodegenTarget staticCodegenTarget = new StaticCodegenTarget(); |
| 22 | + String outputDir; |
23 | 23 | if (args.length > 1) { |
24 | | - staticCodegenTarget.outputDir = args[1]; |
| 24 | + outputDir = args[1]; |
25 | 25 | } else { |
26 | 26 | if (!new File(configJavaFile).exists()) { |
27 | 27 | throw new JsonException("must execute static code generator in the java source code directory which contains: " + configJavaFile); |
28 | 28 | } |
29 | | - staticCodegenTarget.outputDir = new File(".").getAbsolutePath(); |
| 29 | + outputDir = new File(".").getAbsolutePath(); |
30 | 30 | } |
31 | 31 | Class<?> clazz = Class.forName(configClassName); |
32 | | - CodegenConfig config = (CodegenConfig) clazz.newInstance(); |
| 32 | + StaticCodegenConfig config = (StaticCodegenConfig) clazz.newInstance(); |
33 | 33 | JsonIterator.setMode(DecodingMode.DYNAMIC_MODE_AND_MATCH_FIELD_WITH_HASH); |
34 | 34 | JsonStream.setMode(EncodingMode.DYNAMIC_MODE); |
35 | 35 | config.setup(); |
36 | | - CodegenAccess.staticGenDecoders(config.whatToCodegen(), staticCodegenTarget); |
37 | | - com.jsoniter.output.CodegenAccess.staticGenEncoders(config.whatToCodegen(), staticCodegenTarget); |
| 36 | + CodegenAccess.staticGenDecoders( |
| 37 | + config.whatToCodegen(), new CodegenAccess.StaticCodegenTarget(outputDir)); |
| 38 | + com.jsoniter.output.CodegenAccess.staticGenEncoders( |
| 39 | + config.whatToCodegen(), new com.jsoniter.output.CodegenAccess.StaticCodegenTarget(outputDir)); |
38 | 40 | } |
39 | 41 | } |
0 commit comments