ParameterParser

public class ParameterParser

General purpose command-line parser accepting (if defined) both single-letter (and space separated value) and full names (and equal-sign separated value). It also supports default values and generation of help based on configured options.

Constructors

ParameterParser

public ParameterParser()

Constructs new ParameterParser without any options and without interactive mode

ParameterParser

public ParameterParser(boolean interactiveMode)

Constructs new ParameterParser without any options and allowing enabling interactive mode

Parameters:
  • interactiveMode – indicates whether interactive mode should be enabled (include it in the options and handle accordingly)

ParameterParser

public ParameterParser(List<CommandlineParameter> options, boolean interactiveMode)

Constructs new ParameterParser with initial options and allowing enabling interactive mode

Parameters:
  • options – initial list of available options
  • interactiveMode – indicates whether interactive mode should be enabled (include it in the options and handle accordingly)

Methods

addOption

public void addOption(CommandlineParameter option)

Adds CommandlineParameter to list of available parameters

Parameters:
Throws:
  • IllegalArgumentException – is thrown when the same option (either same name or same short-letter) exists in the defined list.

addOptions

public void addOptions(List<CommandlineParameter> options)

Add collection of CommandlineParameter to available options. Calls internally ParameterParser.addOption(tigase.util.ui.console.CommandlineParameter)

Parameters:

getHelp

public String getHelp()

Generates help output with default instruction.

Returns:String with default instruction.

getHelp

public String getHelp(String executionCommand)
Parameters:
  • executionCommand – an example of the execution command, for example $ java -cp \"jars/*.jar\" tigase.util.DBSchemaLoader [options]
Returns:

string representing all the available options and their description

getOptionByLetter

public Optional<CommandlineParameter> getOptionByLetter(String letter)

Returns CommandlineParameter that matches passed parameter

Parameters:
Returns:

an Optional CommandlineParameter that matches passed letter.

getOptionByName

public Optional<CommandlineParameter> getOptionByName(String commandName)

Returns CommandlineParameter that matches passed parameter

Parameters:
Returns:

an Optional CommandlineParameter that matches passed name.

getOptions

public List<CommandlineParameter> getOptions()

Retrieves List with all defined CommandlineParameter options

Returns:List with all defined CommandlineParameter options

getOptions

public List<CommandlineParameter> getOptions(Predicate<? super CommandlineParameter> predicate)

Retrieves List with all defined CommandlineParameter options that matches passed Predicate

Parameters:
  • predicate – by which list should be filtered
Returns:

List of CommandlineParameter filtered to matching options.

getOptionsNames

public List<String> getOptionsNames(Predicate<? super CommandlineParameter> predicate)

Retrieves List with all defined CommandlineParameter options names that matches passed Predicate

Parameters:
  • predicate – by which list should be filtered
Returns:

List of CommandlineParameter names filtered to matching options.

getTask

public Optional<Task> getTask()

isInteractiveMode

public boolean isInteractiveMode()

main

public static void main(String[] args)

parseArgs

public Properties parseArgs(String[] args)

Main parsing method which takes as an input array of parameters and returns a Properties object with parsed parameter/values. It supports both single letter format (-X value as well as full name (--name=value). In case no value for defined option was passed but it’s defined as required and contains default value it will be included in the resulting Properties. If interactive mode is enabled, there will be a prompt for all missing options (defined but not included in passed parameter)

Parameters:
  • args – an input array of parameters and defined values.
Returns:

Properties with parameter/value pairs matching defined options.

removeOption

public void removeOption(CommandlineParameter option)

Removes given option from list of supported options.

Parameters:
  • optioncommandlineParameter option to be removed

removeOptionByLetter

public void removeOptionByLetter(String singleLetter)

Removes given option from list of supported options by it’s single letter

Parameters:
  • singleLetter – identification of the option

removeOptionByName

public void removeOptionByName(String name)

Removes given option from list of supported options by it’s full name

Parameters:
  • name – full name identification of the option

setTasks

public void setTasks(Task[] supportedTasks)