All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.denimgroup.threadfix.cli.DefectTrackerParameterParser Maven / Gradle / Ivy

package com.denimgroup.threadfix.cli;

import com.denimgroup.threadfix.data.entities.DefectTracker;
import com.denimgroup.threadfix.remote.ThreadFixRestClient;
import com.denimgroup.threadfix.remote.response.RestResponse;

import java.util.List;

import static com.denimgroup.threadfix.CollectionUtils.list;

public class DefectTrackerParameterParser extends GenericParameterParser {

    static final private List validParameters = list("defectTrackerTypeId", "name", "url", "defaultUsername",
            "defaultPassword", "defaultProductName");

    public static RestResponse processNewDefectTrackerParameters(ThreadFixRestClient client,
                                                                                String... args) {
        setParameters(collapseParameters(args)); // This makes me cringe but it's single-threaded right?

        checkArguments();

        return client.newDefectTracker(getStringValue("defectTrackerTypeId"),
                getStringValue("name"),
                getStringValue("url"),
                getStringValue("defaultUsername"),
                getStringValue("defaultPassword"),
                getStringValue("defaultProductName"));
    }

    private static void checkArguments() {
        for (String parameter : getParameters()) {
            if (!parameter.contains("=")) {
                throw new IllegalArgumentException(parameter + " was invalid. Expected format is =");
            }

            String shorterName = parameter.substring(0, parameter.indexOf('='));

            if (!validParameters.contains(shorterName)) {
                throw new IllegalArgumentException(parameter + " was invalid. The key should be one of " + validParameters);
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy