
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;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
/**
* {@link Options} builder from {@link Argument}
*/
@Slf4j
public class OptionsBuilder {
/**
* Build {@link Options} from a list of {@link Argument}.
*
* @param arguments the arguments.
* @return the options built.
*/
public static Options buildOptions(@NonNull 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);
logger.debug("Converted arguments [{}] to options [{}]", arguments, ret);
return ret;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy