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}