Class ArgsParser

java.lang.Object
org.refcodes.cli.ArgsParser
All Implemented Interfaces:
ArgsParserBuilder<ParseArgs>, ArgsProcessorBuilder<ParseArgs>, ArgsSyntaxAccessor, ArgsSyntaxAccessor.ArgsSyntaxBuilder<ParseArgs>, ArgsSyntaxAccessor.ArgsSyntaxMutator, ArgsSyntaxAccessor.ArgsSyntaxProperty, ArgumentEscapeCodeAccessor, ArgumentEscapeCodeAccessor.ArgumentEscapeCodeBuilder<ParseArgs>, ArgumentEscapeCodeAccessor.ArgumentEscapeCodeMutator, ArgumentEscapeCodeAccessor.ArgumentEscapeCodeProperty, BannerBorderEscapeCodeAccessor, BannerBorderEscapeCodeAccessor.BannerBorderEscapeCodeBuilder<ParseArgs>, BannerBorderEscapeCodeAccessor.BannerBorderEscapeCodeMutator, BannerBorderEscapeCodeAccessor.BannerBorderEscapeCodeProperty, BannerEscapeCodeAccessor, BannerEscapeCodeAccessor.BannerEscapeCodeBuilder<ParseArgs>, BannerEscapeCodeAccessor.BannerEscapeCodeMutator, BannerEscapeCodeAccessor.BannerEscapeCodeProperty, BannerFontAccessor, BannerFontAccessor.BannerFontBuilder<ParseArgs>, BannerFontAccessor.BannerFontMutator, BannerFontAccessor.BannerFontProperty, BannerFontPaletteAccessor, BannerFontPaletteAccessor.BannerFontPaletteBuilder<ParseArgs>, BannerFontPaletteAccessor.BannerFontPaletteMutator, BannerFontPaletteAccessor.BannerFontPaletteProperty, CliMetrics, CommandEscapeCodeAccessor, CommandEscapeCodeAccessor.CommandEscapeCodeBuilder<ParseArgs>, CommandEscapeCodeAccessor.CommandEscapeCodeMutator, CommandEscapeCodeAccessor.CommandEscapeCodeProperty, CopyrightAccessor, CopyrightAccessor.CopyrightBuilder<ParseArgs>, CopyrightAccessor.CopyrightMutator, CopyrightAccessor.CopyrightProperty, DescriptionEscapeCodeAccessor, DescriptionEscapeCodeAccessor.DescriptionEscapeCodeBuilder<ParseArgs>, DescriptionEscapeCodeAccessor.DescriptionEscapeCodeMutator, DescriptionEscapeCodeAccessor.DescriptionEscapeCodeProperty, ExamplesAccessor, ExamplesAccessor.ExamplesBuilder<ParseArgs>, ExamplesAccessor.ExamplesMutator, ExamplesAccessor.ExamplesProperty, LicenseAccessor, LicenseAccessor.LicenseBuilder<ParseArgs>, LicenseAccessor.LicenseMutator, LicenseAccessor.LicenseProperty, LineSeparatorEscapeCodeAccessor, LineSeparatorEscapeCodeAccessor.LineSeparatorEscapeCodeBuilder<ParseArgs>, LineSeparatorEscapeCodeAccessor.LineSeparatorEscapeCodeMutator, LineSeparatorEscapeCodeAccessor.LineSeparatorEscapeCodeProperty, LongOptionPrefixAccessor, LongOptionPrefixAccessor.LongOptionPrefixBuilder<ParseArgs>, LongOptionPrefixAccessor.LongOptionPrefixMutator, LongOptionPrefixAccessor.LongOptionPrefixProperty, Optionable, OptionEscapeCodeAccessor, OptionEscapeCodeAccessor.OptionEscapeCodeBuilder<ParseArgs>, OptionEscapeCodeAccessor.OptionEscapeCodeMutator, OptionEscapeCodeAccessor.OptionEscapeCodeProperty, ParseArgs, ShortOptionPrefixAccessor, ShortOptionPrefixAccessor.ShortOptionPrefixBuilder<ParseArgs>, ShortOptionPrefixAccessor.ShortOptionPrefixMutator, ShortOptionPrefixAccessor.ShortOptionPrefixProperty, SyntaxMetricsAccessor, SyntaxMetricsAccessor.SyntaxMetricsBuilder<ParseArgs>, SyntaxMetricsAccessor.SyntaxMetricsMutator, SyntaxMetricsAccessor.SyntaxMetricsProperty, org.refcodes.mixin.ConsoleWidthAccessor, org.refcodes.mixin.ConsoleWidthAccessor.ConsoleWidthBuilder<ParseArgs>, org.refcodes.mixin.ConsoleWidthAccessor.ConsoleWidthMutator, org.refcodes.mixin.ConsoleWidthAccessor.ConsoleWidthProperty, org.refcodes.mixin.DescriptionAccessor, org.refcodes.mixin.DescriptionAccessor.DescriptionBuilder<ParseArgs>, org.refcodes.mixin.DescriptionAccessor.DescriptionMutator, org.refcodes.mixin.DescriptionAccessor.DescriptionProperty, org.refcodes.mixin.EscapeCodesStatusAccessor, org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusBuilder<ParseArgs>, org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusMutator, org.refcodes.mixin.EscapeCodesStatusAccessor.EscapeCodeStatusProperty, org.refcodes.mixin.LineBreakAccessor, org.refcodes.mixin.LineBreakAccessor.LineBreakBuilder<ParseArgs>, org.refcodes.mixin.LineBreakAccessor.LineBreakMutator, org.refcodes.mixin.LineBreakAccessor.LineBreakProperty, org.refcodes.mixin.MaxConsoleWidthAccessor, org.refcodes.mixin.MaxConsoleWidthAccessor.MaxConsoleWidthBuilder<ParseArgs>, org.refcodes.mixin.MaxConsoleWidthAccessor.MaxConsoleWidthMutator, org.refcodes.mixin.MaxConsoleWidthAccessor.MaxConsoleWidthProperty, org.refcodes.mixin.NameAccessor, org.refcodes.mixin.NameAccessor.NameBuilder<ParseArgs>, org.refcodes.mixin.NameAccessor.NameMutator, org.refcodes.mixin.NameAccessor.NameProperty, org.refcodes.mixin.Resetable, org.refcodes.mixin.ResetEscapeCodeAccessor, org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeBuilder<ParseArgs>, org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeMutator, org.refcodes.mixin.ResetEscapeCodeAccessor.ResetEscapeCodeProperty, org.refcodes.mixin.Schemable, org.refcodes.mixin.TitleAccessor, org.refcodes.mixin.TitleAccessor.TitleBuilder<ParseArgs>, org.refcodes.mixin.TitleAccessor.TitleMutator, org.refcodes.mixin.TitleAccessor.TitleProperty, org.refcodes.textual.TextBoxGridAccessor, org.refcodes.textual.TextBoxGridAccessor.TextBoxGridBuilder<ParseArgs>, org.refcodes.textual.TextBoxGridAccessor.TextBoxGridMutator, org.refcodes.textual.TextBoxGridAccessor.TextBoxGridProperty

public class ArgsParser extends Object implements ParseArgs
A straightforward implementation of the ParseArgs interface. The constructor only provides means to set the required attributes as the attributes to be adjusted optionally are already sufficiently preconfigured. For adjusting them, a flavor of the Builder-Pattern is provided with which you can easily chain the configuration of this instance; as them methods return the instance of this class being configured. This helps to prevent the telescoping constructor anti-pattern.

The SyntaxNotation is pre-set with the SyntaxNotation.LOGICAL notation.

The console width id preconfigured with the console's width as determined by the SystemUtility.getTerminalWidth().

The standard out PrintStream is preconfigured with the System.out PrintStream.

The newline characters to be used for line breaks is "\r\n" on Windows machines and "\"n" on all other machines as of the SystemUtility.getLineBreak().

See Also:
  • "http://en.wikipedia.org/wiki/Builder_pattern"