package jenkins.util;

import net.sf.json.JSONObject;
import org.kohsuke.stapler.DataBoundConstructor;

/**
 * Used in conjunction with /lib/form/serverTcpPort tag to parse the submitted JSON back into a port number.
 *
 * @author Kohsuke Kawaguchi
 * @since 1.445
 */
public class ServerTcpPort {
    private int value;
    private String type;

    @DataBoundConstructor
    public ServerTcpPort(int value, String type) {
        this.value = value;
        this.type = type;
    }

    public ServerTcpPort(JSONObject o) {
        type = o.getString("type");
        value = o.optInt("value");
    }

    /**
     * Parses the value back into the port number
     */
    public int getPort() {
        if (type.equals("fixed"))   return value;
        if (type.equals("random"))  return 0;
        return -1;
    }
}
