picocli

## Class CommandLine.AbstractParseResultHandler<R>

- java.lang.Object
- - picocli.CommandLine.AbstractHandler<R,CommandLine.AbstractParseResultHandler<R>>
  - - picocli.CommandLine.AbstractParseResultHandler<R>

All Implemented Interfaces:
  CommandLine.IParseResultHandler2<R>

Direct Known Subclasses:
  CommandLine.RunAll, CommandLine.RunFirst, CommandLine.RunLast

Enclosing class:
  CommandLine

    public abstract static class CommandLine.AbstractParseResultHandler<R>
    extends CommandLine.AbstractHandler<R,CommandLine.AbstractParseResultHandler<R>>
    implements CommandLine.IParseResultHandler2<R>

Command line parse result handler that returns a value. This handler prints help if requested, and otherwise calls `handle(CommandLine.ParseResult)` with the parse result. Facilitates implementation of the `CommandLine.IParseResultHandler2` interface.

Note that `AbstractParseResultHandler` is a generic type. This, along with the abstract `self` method, allows method chaining to work properly in subclasses, without the need for casts. An example subclass can look like this:

     class MyResultHandler extends AbstractParseResultHandler<MyReturnType> {

         protected MyReturnType handle(ParseResult parseResult) throws ExecutionException { ... }

         protected MyResultHandler self() { return this; }
     }

Since:
  3.0

### Constructor Summary

Constructors
Constructor and Description
`AbstractParseResultHandler()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected abstract R` `handle(CommandLine.ParseResult parseResult)` Processes the specified `ParseResult` and returns the result as a list of objects.
`R` `handleParseResult(CommandLine.ParseResult parseResult)` Prints help if requested, and otherwise calls `handle(CommandLine.ParseResult)`.

### Methods inherited from class picocli.CommandLine.AbstractHandler

`andExit, ansi, err, exit, exitCode, hasExitCode, out, returnResultOrExit, self, throwOrExit, useAnsi, useErr, useOut`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### AbstractParseResultHandler

    public AbstractParseResultHandler()

### Method Detail

#### handleParseResult

    public R handleParseResult(CommandLine.ParseResult parseResult)
                        throws CommandLine.ExecutionException

Prints help if requested, and otherwise calls `handle(CommandLine.ParseResult)`. Finally, either a list of result objects is returned, or the JVM is terminated if an exit code was set.

Specified by:
  `handleParseResult` in interface `CommandLine.IParseResultHandler2<R>`
Parameters:
  `parseResult` - the `ParseResult` that resulted from successfully parsing the command line arguments
Returns:
  the result of `processing parse results`
Throws:
  `CommandLine.ParameterException` - if the `HelpCommand` was invoked for an unknown subcommand. Any `ParameterExceptions` thrown from this method are treated as if this exception was thrown during parsing and passed to the `CommandLine.IExceptionHandler2`
  `CommandLine.ExecutionException` - if a problem occurred while processing the parse results; client code can use `CommandLine.ExecutionException.getCommandLine()` to get the command or subcommand where processing failed

#### handle

    protected abstract R handle(CommandLine.ParseResult parseResult)
                         throws CommandLine.ExecutionException

Processes the specified `ParseResult` and returns the result as a list of objects. Implementations are responsible for catching any exceptions thrown in the `handle` method, and rethrowing an `ExecutionException` that details the problem and captures the offending `CommandLine` object.

Parameters:
  `parseResult` - the `ParseResult` that resulted from successfully parsing the command line arguments
Returns:
  the result of processing parse results
Throws:
  `CommandLine.ExecutionException` - if a problem occurred while processing the parse results; client code can use `CommandLine.ExecutionException.getCommandLine()` to get the command or subcommand where processing failed