private void addJoptOptionObject(Option option) { OptionSpecBuilder optionBuilder = null; optionBuilder = parser.acceptsAll(option.getAggregate(), option.getHelp()); /* Now set the the attributes related to the option */ ArgumentAcceptingOptionSpec<String> argumentSpecs = null; if (option.isWithRequiredArgs()) { argumentSpecs = optionBuilder.withRequiredArg(); } else { argumentSpecs = optionBuilder.withOptionalArg(); } if (option.isRequired()) { argumentSpecs.required(); } if (option.getValueSeparator() != null) { argumentSpecs.withValuesSeparatedBy(option.getValueSeparator()); } }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Option option = (Option) obj; if (longOption == null) { if (option.getLongOption() != null) { return false; } } else if (!longOption.equals(option.getLongOption())) { return false; } return true; }
private static void appendRequiredOption(StringBuffer buffer, Option option){ buffer.append(" " + SyntaxConstants.LONG_OPTION_SPECIFIER + option.getLongOption()); String temp = buildOptionHelpText(option); if (option.getSpecifiedDefaultValue() != null && !option.getSpecifiedDefaultValue().equals("")) { buffer.append("(").append(temp).append(")?"); } else { buffer.append(temp); } }
public static String buildOptionHelpText(Option option) { String temp = SyntaxConstants.OPTION_VALUE_SPECIFIER + VALUE_FIELD; if( (option.getValueSeparator() != null && option.getValueSeparator() != CliMetaData.ANNOTATION_NULL_VALUE && !option.getValueSeparator().equals("")) || isCollectionOrArrayType(option.getDataType())) { temp += "(" + option.getValueSeparator() + VALUE_FIELD + ")*"; } return temp; }
Option option = new Option(); if (!option.setLongOption(string)) { synonyms.add(string); option.setSynonyms(synonyms); if (!(option.getAggregate().size() > 0)) { logWrapper.warning("Option should have a name"); option.setHelp(cliOption.help()); option.setRequired(cliOption.mandatory()); option.setSystemProvided(cliOption.systemProvided()); option.setSpecifiedDefaultValue(cliOption.specifiedDefaultValue()); option.setUnspecifiedDefaultValue(cliOption.unspecifiedDefaultValue()); option.setContext(cliOption.optionContext()); option.setConverter(getConverter(parameterType, option.getContext())); option.setDataType(parameterType); option.setParameterNo(parameterNo); return option;
CliStrings.format(CliStrings.GFSHPARSER__MSG__VALUE_REQUIRED_FOR_OPTION_0, option.getLongOption()), CommandProcessingException.OPTION_VALUE_REQUIRED, option.getLongOption()); logWrapper.fine("Value required for Parameter " + option.getLongOption()); error = true; if (option.isRequired()) { handleCondition( CliStrings.format(CliStrings.GFSHPARSER__MSG__COMMAND_OPTION_0_IS_REQUIRED_USE_HELP, option.getLongOption()), CommandProcessingException.REQUIRED_OPTION_MISSING, option.getLongOption()); logWrapper.fine("Required Parameter " + option.getLongOption()); error = true; } else { value = option.getUnspecifiedDefaultValue(); if (value == null) { if (option.getValueSeparator() != null) { valueSeparator = option.getValueSeparator(); Object object = getConversionObject(option.getConverter(), value, option.getDataType(), option.getContext(), valueSeparator); new Object[] { value.trim(), option.getLongOption() }), CommandProcessingException.OPTION_VALUE_INVALID, option.getLongOption() + "=" + value); logWrapper.fine("Value \"" + value.trim() + "\" is not applicable for " + option.getLongOption()); error = true; parameters.add(new MethodParameter(object, option.getParameterNo()));
if (option.isRequired()) { buffer.append(" " + SyntaxConstants.LONG_OPTION_SPECIFIER + option.getLongOption()); if (option.getSpecifiedDefaultValue() != null && !option.getSpecifiedDefaultValue().equals("")) { buffer.append("("); buffer.append(temp); + option.getLongOption()); if (option.getSpecifiedDefaultValue() != null && !option.getSpecifiedDefaultValue().equals("")) { buffer.append("("); buffer.append(temp); DataNode options = new DataNode(OPTIONS_NAME, new ArrayList<DataNode>()); for (Option option : commandTarget.getOptionParser().getOptions()) { DataNode optionNode = new DataNode(option.getLongOption(), new ArrayList<DataNode>()); optionNode.addChild(new DataNode(((option.getHelp() != null && !option .getHelp().equals("")) ? option.getHelp() : ""), null)); if (option.getSynonyms() != null && option.getSynonyms().size() > 0) { StringBuilder builder = new StringBuilder(); for (String string : option.getSynonyms()) { if (builder.length() > 0) { builder.append(","); optionNode.addChild(new DataNode(REQUIRED_SUB_NAME+((option.isRequired()) ? TRUE_TOKEN
List<String> synonyms = option.getAggregate(); for (String string : synonyms) { if (joptOptionSet.has(string)) { SyntaxConstants.OPTION_VALUE_SPECIFIER); if (!inputSplit.equals("")) { if (option.getLongOption().equals(inputSplit)) { present = true; break outer; } else { for (String optionSynonym : option.getSynonyms()) { if (optionSynonym.equals(inputSplit)) { present = true; if (joptOptionSet.hasArgument(string)) { List<?> arguments = joptOptionSet.valuesOf(string); if (arguments.size() > 1 && !(option.getConverter() instanceof MultipleValueConverter) && option.getValueSeparator() == null) { List<String> optionList = new ArrayList<String>(1); optionList.add(string); ce = processException(new MultipleArgumentsForOptionException(optionList, joptOptionSet)); } else if ((arguments.size() == 1 && !(option.getConverter() instanceof MultipleValueConverter)) || option.getValueSeparator() == null) { optionSet.put(option, arguments.get(0).toString().trim()); } else { StringBuffer value = new StringBuffer(); String valueSeparator = option.getValueSeparator(); for (Object object : joptOptionSet.valuesOf(string)) { if (value.length() == 0) { optionSet.put(option, option.getSpecifiedDefaultValue());
SyntaxConstants.OPTION_VALUE_SPECIFIER); if (!string.equals("")) { if (option.getLongOption().equals(string)) { + option.getLongOption().length(); break; for (String optionSynonym : option.getSynonyms()) { if (optionSynonym.equals(string)) { optionsPresentMap.put(option.getLongOption(), option); if (option.getValueSeparator() != null) { valueSeparator = option.getValueSeparator(); if (option.getLongOption().startsWith(userOptString) && !userOptString.equals("") && !option.getLongOption().equals(userOptString) && !optionsPresentMap.containsKey(userOptString)) { + option.getLongOption(), option.getLongOption(), "", 0)); }else{ for (String optionSynonym : option.getSynonyms()) { if (optionSynonym.startsWith(userOptString) && !userOptString.equals("") if (option.isRequired()) { mandatoryOptions.add(option); } else {
if (option.isRequired()) { buffer.append(" " + SyntaxConstants.LONG_OPTION_SPECIFIER + option.getLongOption()); if (option.getSpecifiedDefaultValue() != null && !option.getSpecifiedDefaultValue().equals("")) { buffer.append("("); buffer.append(temp); + option.getLongOption()); if (option.getSpecifiedDefaultValue() != null && !option.getSpecifiedDefaultValue().equals("")) { buffer.append("("); buffer.append(temp); List<Row> rows = new ArrayList<Row>(); for (Option option : commandTarget.getOptionParser().getOptions()) { rows.add(row(option.getLongOption() + ((option.getHelp() != null && !option.getHelp().equals("")) ? ":" + option.getHelp() : "")));
Option createdOption = commandManager.createOption((CliOption) ann, parameterTypes[i], parameterNo); assertTrue(optionNames.contains(createdOption.getLongOption())); assertEquals(((CliOption) ann).help(), createdOption.getHelp()); if (((CliOption) ann).specifiedDefaultValue() != null && ((CliOption) ann).specifiedDefaultValue().length() > 0) { assertEquals(((CliOption) ann).specifiedDefaultValue().trim(), createdOption.getSpecifiedDefaultValue().trim()); createdOption.getSpecifiedDefaultValue().trim());
private void preConfigureConverters(CommandTarget commandTarget) { for (Option option : commandTarget.getOptionParser().getOptions()) { Converter<?> converter = option.getConverter(); if (converter == null) { option.setConverter(commandManager.getConverter(option.getDataType(), option.getContext())); converter = option.getConverter(); } } for (Argument argument : commandTarget.getOptionParser().getArguments()) { Converter<?> converter = argument.getConverter(); if (converter == null) { argument.setConverter(commandManager.getConverter(argument.getDataType(), argument.getContext())); converter = argument.getConverter(); } } }
private Option getOption(OptionException oe) { Option exceptionOption = null; Iterator<String> iterator = oe.options().iterator(); outermost: for (Option option : options) { /* outer: */for (String string : option.getAggregate()) { /* inner: */while(iterator.hasNext()) { String joptOption = iterator.next(); if (string.equals(joptOption)) { exceptionOption = option; break outermost; } } } } if (exceptionOption == null) { if (oe.options() != null) { if (oe.options().size() > 0) { exceptionOption = new Option(oe.options().iterator().next()); } } } return exceptionOption; }
Option option = new Option(); if (!option.setLongOption(string)) { synonyms.add(string); option.setSynonyms(synonyms); if (!(option.getAggregate().size() > 0)) { logWrapper.warning("Option should have a name"); option.setHelp(cliOption.help()); option.setRequired(cliOption.mandatory()); option.setSystemProvided(cliOption.systemProvided()); option.setSpecifiedDefaultValue(cliOption.specifiedDefaultValue()); option.setUnspecifiedDefaultValue(cliOption.unspecifiedDefaultValue()); option.setContext(cliOption.optionContext()); option.setConverter(getConverter(parameterType, option.getContext())); option.setDataType(parameterType); option.setParameterNo(parameterNo); return option;
Converter<?> converter = option.getConverter(); if (converter == null) { option.setConverter(commandManager.getConverter(option.getDataType(), option.getContext())); converter = option.getConverter(); handleCondition(CliStrings.format(CliStrings.GFSHPARSER__MSG__VALUE_REQUIRED_FOR_OPTION_0, option.getLongOption()), CommandProcessingException.OPTION_VALUE_REQUIRED, option.getLongOption()); logWrapper.fine("Value required for Parameter " + option.getLongOption()); error = true; if (option.isRequired()) { handleCondition(CliStrings.format(CliStrings.GFSHPARSER__MSG__COMMAND_OPTION_0_IS_REQUIRED_USE_HELP, option.getLongOption()), CommandProcessingException.REQUIRED_OPTION_MISSING, option.getLongOption()); logWrapper.fine("Required Parameter " + option.getLongOption()); error = true; } else { value = option.getUnspecifiedDefaultValue(); if (value == null) { if (option.getValueSeparator() != null) { valueSeparator = option.getValueSeparator(); Object object = getConversionObject(option.getConverter(), value, option.getDataType(), option.getContext(), valueSeparator); handleCondition(CliStrings.format(CliStrings.GFSHPARSER__MSG__VALUE_0_IS_NOT_APPLICABLE_FOR_1, new Object[] {value.trim(), option.getLongOption()}), CommandProcessingException.OPTION_VALUE_INVALID, option.getLongOption()+"="+value); logWrapper.fine("Value \"" + value.trim() + "\" is not applicable for "+option.getLongOption()); error = true;
if (!opt.equals(cmd.leadOption)) { Option option = getOption(commandTarget, opt); if (option.isRequired()) { appendRequiredOption(sb, option); } else DataNode options = new DataNode(OPTIONS_NAME, new ArrayList<DataNode>()); for (Option option : commandTarget.getOptionParser().getOptions()) { DataNode optionNode = new DataNode(option.getLongOption(), new ArrayList<DataNode>()); optionNode.addChild(new DataNode(((option.getHelp() != null && !option .getHelp().equals("")) ? option.getHelp() : ""), null)); if (option.getSynonyms() != null && option.getSynonyms().size() > 0) { StringBuilder builder = new StringBuilder(); for (String string : option.getSynonyms()) { if (builder.length() > 0) { builder.append(","); optionNode.addChild(new DataNode(REQUIRED_SUB_NAME+((option.isRequired()) ? TRUE_TOKEN : FALSE_TOKEN), null)); if (option.getSpecifiedDefaultValue() != null && !option.getSpecifiedDefaultValue().equals("")) { optionNode.addChild(new DataNode(SPECIFIEDDEFAULTVALUE_SUB_NAME + option.getSpecifiedDefaultValue(), null)); if (option.getUnspecifiedDefaultValue() != null && !option.getUnspecifiedDefaultValue().equals("")) { optionNode.addChild(new DataNode(UNSPECIFIEDDEFAULTVALUE_VALUE_SUB_NAME + option.getUnspecifiedDefaultValue(), null));
List<String> synonyms = option.getAggregate(); for (String string : synonyms) { if (joptOptionSet.has(string)) { SyntaxConstants.OPTION_VALUE_SPECIFIER); if (!inputSplit.equals("")) { if (option.getLongOption().equals(inputSplit)) { present = true; break outer; } else { for (String optionSynonym : option.getSynonyms()) { if (optionSynonym.equals(inputSplit)) { present = true; if (joptOptionSet.hasArgument(string)) { List<?> arguments = joptOptionSet.valuesOf(string); if (arguments.size() > 1 && !(option.getConverter() instanceof MultipleValueConverter) && option.getValueSeparator() == null) { List<String> optionList = new ArrayList<String>(1); optionList.add(string); ce = processException(new MultipleArgumentsForOptionException(optionList, joptOptionSet)); } else if ((arguments.size() == 1 && !(option.getConverter() instanceof MultipleValueConverter)) || option.getValueSeparator() == null) { optionSet.put(option, arguments.get(0).toString().trim()); } else { StringBuffer value = new StringBuffer(); String valueSeparator = option.getValueSeparator(); for (Object object : joptOptionSet.valuesOf(string)) { if (value.length() == 0) { optionSet.put(option, option.getSpecifiedDefaultValue());
SyntaxConstants.OPTION_VALUE_SPECIFIER); if (!string.equals("")) { if (option.getLongOption().equals(string)) { + option.getLongOption().length(); break; for (String optionSynonym : option.getSynonyms()) { if (optionSynonym.equals(string)) { optionsPresentMap.put(option.getLongOption(), option); if (option.getValueSeparator() != null) { valueSeparator = option.getValueSeparator(); if (option.getLongOption().startsWith(userOptString) && !userOptString.equals("") && !option.getLongOption().equals(userOptString) && !optionsPresentMap.containsKey(userOptString)) { completionCandidates.add(new Completion(" " + SyntaxConstants.LONG_OPTION_SPECIFIER + option.getLongOption(), option.getLongOption(), "", 0)); }else{ for (String optionSynonym : option.getSynonyms()) { if (optionSynonym.startsWith(userOptString) && !userOptString.equals("") if (option.isRequired()) { mandatoryOptions.add(option);
if (option.isRequired()) { buffer.append(" " + SyntaxConstants.LONG_OPTION_SPECIFIER + option.getLongOption()); if (option.getSpecifiedDefaultValue() != null && !option.getSpecifiedDefaultValue().equals("")) { buffer.append("("); buffer.append(temp); + option.getLongOption()); if (option.getSpecifiedDefaultValue() != null && !option.getSpecifiedDefaultValue().equals("")) { buffer.append("("); buffer.append(temp); List<Row> rows = new ArrayList<Row>(); for (Option option : commandTarget.getOptionParser().getOptions()) { rows.add(row(option.getLongOption() + ((option.getHelp() != null && !option.getHelp().equals("")) ? ":" + option.getHelp() : "")));
public static String buildOptionHelpText(Option option) { String temp = SyntaxConstants.OPTION_VALUE_SPECIFIER + VALUE_FIELD; if( (option.getValueSeparator() != null && option.getValueSeparator() != CliMetaData.ANNOTATION_NULL_VALUE && !option.getValueSeparator().equals("")) || isCollectionOrArrayType(option.getDataType())) { temp += "(" + option.getValueSeparator() + VALUE_FIELD + ")*"; } return temp; }