001package net.gdface.codegen.thrift;
002
003import net.gdface.codegen.generator.GeneratorOptions;
004import org.apache.commons.cli.Option;
005
006/**
007 * @author guyadong
008 *
009 */
010public class ThriftServiceDecoratorOptions extends GeneratorOptions implements ThriftConstants{
011        private final static ThriftServiceDecoratorOptions instance = new ThriftServiceDecoratorOptions();
012
013        protected ThriftServiceDecoratorOptions() {
014                super();
015                options.addOption(Option.builder(INTERFACE_CLASS_OPTION).longOpt(INTERFACE_CLASS_OPTION_LONG)
016                                .desc("interface classes,splited with [,]without blank space,must maped with -rc")
017                                .argName("className,..,className").numberOfArgs(1).required().build());
018                options.addOption(Option.builder(REFERENCE_CLASS_OPTION).longOpt(REFERENCE_CLASS_OPTION_LONG)
019                                .desc("reference classes,splited with [,]without blank space,must maped with -ic")
020                                .argName("className,..,className").numberOfArgs(1).build());
021                options.addOption(Option.builder(TASK_TYPE_OPTION).longOpt(TASK_TYPE_OPTION_LONG)
022                                .desc(TASK_TYPE_OPTION_DESC).numberOfArgs(1).required().build());
023                options.addOption(Option.builder().longOpt(THRIFT_CLIENT_PKG_OPTION_LONG)
024                                .desc(THRIFT_CLIENT_PKG_OPTION_DESC).numberOfArgs(1).build());
025                options.addOption(Option.builder(LANGUAGE_OPTION).longOpt(LANGUAGE_OPTION_LONG)
026                                .desc(LANGUAGE_OPTION_DESC).numberOfArgs(1).build());
027                options.addOption(Option.builder(CONFIG_OPTION).longOpt(CONFIG_OPTION_LONG)
028                                .desc(CONFIG_OPTION_DESC).numberOfArgs(1).build());
029                options.addOption(Option.builder(SOURCE_PREFIX_OPTION).longOpt(SOURCE_PREFIX_OPTION_LONG)
030                                .desc(SOURCE_PREFIX_OPTION_DESC).numberOfArgs(1).build());
031                options.addOption(Option.builder(CLASS_PATH_OPTION).longOpt(CLASS_PATH_OPTION_LONG)
032                                .desc(CLASS_PATH_OPTION_DESC).numberOfArgs(1).build());
033                options.addOption(Option.builder().longOpt(TAGS_OPTION_LONG)
034                                .desc(TAGS_OPTION_DESC).numberOfArgs(1).build());
035                options.addOption(Option.builder().longOpt(COMMON_TYPES_OPTION_LONG)
036                                .desc(COMMON_TYPES_OPTION_DESC).numberOfArgs(1).build());
037                options.addOption(Option.builder().longOpt(ERPC_PROGRAM_OPTION_LONG)
038                                .desc(ERPC_PROGRAM_OPTION_DESC).numberOfArgs(1).build());
039                options.addOption(Option.builder().longOpt(ERPC_PORT_PREFIX_OPTION_LONG)
040                                .desc(ERPC_PORT_PREFIX_OPTION_DESC).numberOfArgs(1).build());
041                options.addOption(Option.builder().longOpt(EXCLUDE_METHODS_OPTION_LONG)
042                                .desc(EXCLUDE_METHODS_OPTION_DESC).numberOfArgs(Option.UNLIMITED_VALUES).build());
043                options.addOption(Option.builder().longOpt(INCLUDE_METHODS_OPTION_LONG)
044                                .desc(INCLUDE_METHODS_OPTION_DESC).numberOfArgs(Option.UNLIMITED_VALUES).build());
045                options.addOption(Option.builder().longOpt(EXCLUDE_FIELDS_OPTION_LONG)
046                                .desc(EXCLUDE_FIELDS_OPTION_DESC).numberOfArgs(Option.UNLIMITED_VALUES).build());
047                options.addOption(Option.builder().longOpt(THRIFT_SERVICE_CLASS_OPTION_LONG)
048                                .desc(THRIFT_SERVICE_CLASS_OPTION_DESC).numberOfArgs(1).build());
049                options.addOption(Option.builder().longOpt(ERPC_FORWARD_PORT_OPTION_LONG)
050                                .desc(ERPC_FORWARD_PORT_OPTION_DESC).numberOfArgs(1).type(Number.class).build());
051                options.addOption(Option.builder().longOpt(ERPC_PROXY_PORT_OPTION_LONG)
052                                .desc(ERPC_PROXY_PORT_OPTION_DESC).numberOfArgs(1).type(Number.class).build());
053                options.addOption(Option.builder().longOpt(ERPC_PROXY_PORT_OPTION_LONG)
054                                .desc(ERPC_PROXY_PORT_OPTION_DESC).numberOfArgs(1).type(Number.class).build());
055                options.addOption(Option.builder().longOpt(ERPC_DEFAULT_MAX_LENGTH_OPTION_LONG)
056                                .desc(ERPC_DEFAULT_MAX_LENGTH_OPTION_DESC).numberOfArgs(1).type(Number.class).build());
057                options.addOption(Option.builder().longOpt(ERPC_ERRMSG_MAX_LENGTH_OPTION_LONG)
058                                .desc(ERPC_ERRMSG_MAX_LENGTH_OPTION_DESC).numberOfArgs(1).type(Number.class).build());
059                options.addOption(Option.builder().longOpt(ERPC_BINARY_OUTPUT_SIZE_OPTION_LONG)
060                                .desc(ERPC_BINARY_OUTPUT_SIZE_OPTION_DESC).numberOfArgs(1).type(Number.class).build());
061                
062        }
063
064        /**
065         * @return instance
066         */
067        public static ThriftServiceDecoratorOptions getInstance() {
068                return instance;
069        }
070
071
072}