/// <summary> /// Tries to parses the option at index <paramref name="currentIndex"/>. /// Sets the out parameters indicating option name and option value, and returns amount of how many arguments have been processed. /// </summary> /// <param name="args">All command-line options.</param> /// <param name="currentIndex">The current index for <paramref name="args"/>.</param> /// <param name="parsedOptions">The parsed options from the command line argument.</param> /// <returns> /// How many arguments processed in <paramref name="args"/>. /// Value of <c>0</c> means that current argument is not an option. /// Values less than <c>0</c> are considered to be <c>0</c>. /// </returns> public Int32 TryParseOption(IList <String> args, Int32 currentIndex, OptionModel optionModel, out String optionName, out String optionValueStr, out Object optionValueTyped, out String errorMessage) { var arg = args[currentIndex]; Int32 result; errorMessage = null; optionValueTyped = null; if (!String.IsNullOrEmpty(arg) && this.IsOption(args, currentIndex, arg)) { result = this.ParseOption(args, currentIndex, arg, out optionName, out optionValueStr); if (result > 0) { var on = optionName; if (String.Equals(optionModel.PrimaryName, optionName, StringComparison.OrdinalIgnoreCase) || optionModel.Aliases.Any(alias => String.Equals(alias, on, StringComparison.OrdinalIgnoreCase))) { optionModel.TryParseToTyped(optionValueStr, ref optionValueTyped, ref errorMessage); } else { result = 0; } } } else { result = 0; optionName = null; optionValueStr = null; } return(result); }
public ApplicationOptionParameter(ApplicationParameterModel pModel, OptionModel model, String optionName, String optionValue, Object optionValueTyped) : base(pModel) { this._model = model; this._optionName = optionName ?? ""; this._optionValue = optionValue ?? ""; this._optionValueTyped = optionValueTyped; }
public SimpleApplicationParametersModel(AbstractOptionParser parser, String valuesModelName, OptionModel helpOption, OptionModel optionAndValueSeparator, OptionModel[] options, Int32 minValues, params String[] optionsWithDuplicatesAllowed) : base( parser, new ApplicationParameterModel("Options", false, ApplicationParameterModel.MAX_UNLIMITED, options.Concat(new[] { helpOption }).ToArray()), optionAndValueSeparator == null ? null : new ApplicationParameterModel(optionAndValueSeparator.PrimaryName, false, 1, 1, optionAndValueSeparator), new ApplicationParameterModel(valuesModelName, true, Math.Max(1, minValues), ApplicationParameterModel.MAX_UNLIMITED)) { this._optionsWithDuplicates = new ReadOnlyCollection <String>(optionsWithDuplicatesAllowed.FilterNulls()); this._helpOption = helpOption; }
public ListOptionModel(String primaryName, OptionModel elementModel, String[] delimiters, Int32 minOccurs, Int32 maxOccurs, params String[] aliases) : base(typeof(String), primaryName, aliases) { if (elementModel == null) { throw new ArgumentNullException("Element model"); } this._listCtor = typeof(List <>).MakeGenericType(elementModel.OptionValueType).GetConstructor(new Type[0]); this._listAddMethod = typeof(List <>).MakeGenericType(elementModel.OptionValueType).GetMethod("Add", new[] { elementModel.OptionValueType }); var delims = delimiters.FilterNulls(); if (delims.Count == 0) { delims.Add(","); } this._delimiters = delims.ToArray(); this._elementModel = elementModel; this._minOccurs = Math.Max(0, minOccurs); this._maxOccurs = Math.Max(-1, maxOccurs); }
public SimpleApplicationParametersModel(AbstractOptionParser parser, String valuesModelName, OptionModel helpOption, OptionModel optionAndValueSeparator, OptionModel[] options, params String[] optionsWithDuplicatesAllowed) : this(parser, valuesModelName, helpOption, optionAndValueSeparator, options, 1, optionsWithDuplicatesAllowed) { }
public SimpleApplicationParametersModel(String valuesModelName, OptionModel helpOption, params OptionModel[] options) : this(null, valuesModelName, helpOption, null, options, null) { }
public SimpleApplicationParametersModel(String valuesModelName, OptionModel helpOption, OptionModel[] options, params String[] optionsWithDuplicatesAllowed) : this(null, valuesModelName, helpOption, null, options, optionsWithDuplicatesAllowed) { }
public SimpleApplicationParametersModel(String valuesModelName, OptionModel helpOption, OptionModel optionAndValueSeparator, OptionModel[] options, Int32 minValues, params String[] optionsWithDuplicatesAllowed) : this(null, valuesModelName, helpOption, optionAndValueSeparator, options, minValues, optionsWithDuplicatesAllowed) { }
public ListOptionModel(String primaryName, OptionModel elementModel, String[] delimiters, Int32 maxOccurs, params String[] aliases) : this(primaryName, elementModel, delimiters, 0, maxOccurs, aliases) { }
public ListOptionModel(String primaryName, OptionModel elementModel, String delimiter, Int32 minOccurs, Int32 maxOccurs, params String[] aliases) : this(primaryName, elementModel, new[] { delimiter }, minOccurs, maxOccurs, aliases) { }