package io.fathom.cloud.compute.commands; import org.kohsuke.args4j.CmdLineException; import org.kohsuke.args4j.CmdLineParser; import org.kohsuke.args4j.OptionDef; import org.kohsuke.args4j.spi.Messages; import org.kohsuke.args4j.spi.OptionHandler; import org.kohsuke.args4j.spi.Parameters; import org.kohsuke.args4j.spi.Setter; import com.fathomdb.TimeSpan; public class TimeSpanOptionHandler extends OptionHandler<TimeSpan> { public TimeSpanOptionHandler(CmdLineParser parser, OptionDef option, Setter<? super TimeSpan> setter) { super(parser, option, setter); } @Override public int parseArguments(Parameters params) throws CmdLineException { String s = params.getParameter(0); TimeSpan value; try { value = TimeSpan.parse(s); } catch (Exception e) { if (option.isArgument()) { throw new CmdLineException(owner, Messages.ILLEGAL_OPERAND.format(option.toString(), s)); } else { throw new CmdLineException(owner, Messages.ILLEGAL_OPERAND.format(params.getParameter(-1), s)); } } setter.addValue(value); return 1; } @Override public String getDefaultMetaVariable() { return "TIMESPAN"; } }