
com.crabshue.commons.args.option.OptionsBuilder Maven / Gradle / Ivy
package com.crabshue.commons.args.option;
import java.util.Arrays;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import com.crabshue.commons.args.Argument;
/**
* {@link Options} builder from {@link Argument}
*
* @author vinh
*/
public class OptionsBuilder {
/**
* Build {@link Options} from a list of {@link Argument}.
*
* @param arguments the arguments.
* @return the options built.
*/
public static Options buildOptions(Argument... arguments) {
final Options ret = new Options();
Arrays.stream(arguments)
.map(argument -> Option.builder(argument.getOptionName())
.argName(argument.getOptionName())
.longOpt(argument.getLongOptionName())
.hasArg(argument.isArgumentExpected())
.required(argument.isRequired())
.desc(argument.getDescription())
.build())
.forEach(ret::addOption);
return ret;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy