Skip to content

Package io.github.qishr.cascara.common.util

Interface IFactory

java.lang.Object
        io.github.qishr.cascara.common.util.CommandLine.IFactory

Enclosing Class:
    io.github.qishr.cascara.common.util.CommandLine


public static interface IFactory

Factory for instantiating classes that are registered declaratively with annotation attributes, like Command#subcommands(), Option#converter(), Parameters#converter() and Command#versionProvider().The factory is also used to instantiate the Collection or Map implementation class for multi-value options and positional parameters with an abstract type, like List<String>.

You may provide a custom implementation of this interface. For example, a custom factory implementation could delegate to a dependency injection container that provides the requested instance.

Custom factory implementations should always fall back to the default factory if instantiation failed. For example:

class MyFactory implements IFactory { private final ApplicationContext applicationContext = getAppContext();

public T T create(ClassT cls) throws Exception {
    try {
        applicationContext.getBean(cls);
    } catch (Exception ex) {
        CommandLine.defaultFactory().create(cls);
    }
}

}

Tip: custom factory implementations that have resources that need to be closed when done should consider implementing java.lang.AutoCloseable or java.io.Closeable. This allows applications to use the following idiom for configuring picocli before running their application:

public static void main(String[] args) { int exitCode = 0; try (MyFactory factory = createMyFactory()) { exitCode = new CommandLine(MyClass.class, factory) .setXxx(x) // configure the picocli parser... .execute(args); } System.exit(exitCode); }

Method Summary

Modifier and Type Method Description
public abstract K create(Class cls) Returns an instance of the specified class.

Method Details

create

public abstract K create(Class cls)

Returns an instance of the specified class.

Parameters:

cls - the class of the object to return

Returns:

the instance

Throws:

Exception