001package net.gdface.codegen.webclient; 002 003import org.apache.commons.cli.Options; 004 005import net.gdface.cli.Context; 006import net.gdface.codegen.generator.CodeWriter; 007import net.gdface.codegen.generator.CxxCodeWriter; 008import net.gdface.codegen.generator.Generator; 009import net.gdface.codegen.generator.GeneratorConfiguration; 010 011/** 012 * 013 * gsoap stub相关代码生成 014 * @author guyadong 015 * 016 */ 017public class GSoapStubGenerator extends Generator { 018 private final GSoapStubOptions options = GSoapStubOptions.getInstance(); 019 protected GSoapStubConfiguration config; 020 021 public GSoapStubGenerator() { 022 config = new GSoapStubConfiguration(); 023 } 024 025 public static void main(String[] args) { 026 new GSoapStubGenerator().parseCommandLine(args).initEngine().generate(); 027 } 028 029 @Override 030 protected CodeWriter getCodeWriter() { 031 return new CxxCodeWriter(config.getOutputLocation()); 032 } 033 034 @Override 035 protected Context createEngineContext() { 036 Context context = super.createEngineContext(); 037 GSoapStub newSourceInfo = new GSoapStub(config.getServiceClass(), config.getStubFolder(), config.getStubPrefix()); 038 context.setProperty(SOURCE_INFO, newSourceInfo); 039 return context; 040 } 041 042 @Override 043 protected Options getOptions() { 044 return options.getOptions(); 045 } 046 047 @Override 048 protected GeneratorConfiguration getGeneratorConfiguration() { 049 return config; 050 } 051 052}