package hudson.plugins.distfork; import org.kohsuke.args4j.spi.OptionHandler; import org.kohsuke.args4j.spi.Setter; import org.kohsuke.args4j.spi.Parameters; import org.kohsuke.args4j.CmdLineParser; import org.kohsuke.args4j.OptionDef; import org.kohsuke.args4j.CmdLineException; /** * @author Kohsuke Kawaguchi */ public class PortForwardingArgumentHandler extends OptionHandler { public PortForwardingArgumentHandler(CmdLineParser cmdLineParser, OptionDef optionDef, Setter setter) { super(cmdLineParser, optionDef, setter); } public int parseArguments(Parameters parameters) throws CmdLineException { String arg = parameters.getParameter(0); String[] tokens = arg.split(":"); if(tokens.length!=3) throw new CmdLineException(owner, "Illegal port forwarding specification: "+arg); try { setter.addValue(new PortSpec( Integer.parseInt(tokens[0]),tokens[1],Integer.parseInt(tokens[2]))); return 1; } catch (NumberFormatException e) { throw new CmdLineException(owner, "Illegal port forwarding specification: "+arg); } } public String getDefaultMetaVariable() { return "PORT:HOST:PORT"; } }