Package com.socrata.datasync.validation

Source Code of com.socrata.datasync.validation.PortJobValidity

package com.socrata.datasync.validation;

import com.socrata.datasync.PortMethod;
import com.socrata.datasync.PublishMethod;
import com.socrata.datasync.SocrataConnectionInfo;
import com.socrata.datasync.Utils;
import com.socrata.datasync.config.CommandLineOptions;
import com.socrata.datasync.job.JobStatus;
import com.socrata.datasync.job.PortJob;
import org.apache.commons.cli.CommandLine;

import java.util.Arrays;

public class PortJobValidity {

    public static boolean validateArgs(CommandLine cmd) {
        // TODO Validate optional parameters
        return validatePortMethodArg(cmd) &&
                validateSourceDomainArg(cmd) &&
                validateSourceIdArg(cmd) &&
                validateDestinationDomainArg(cmd);
    }

    public static JobStatus validateJobParams(SocrataConnectionInfo connectionInfo, PortJob job) {
        if (connectionInfo.getUrl().equals("") || connectionInfo.getUrl().equals("https://"))
            return JobStatus.INVALID_DOMAIN;

        if (!Utils.uidIsValid(job.getSourceSetID()))
            return JobStatus.INVALID_DATASET_ID;

        if (job.getPortMethod().equals(PortMethod.copy_data) && !Utils.uidIsValid(job.getSinkSetID()))
            return JobStatus.INVALID_DATASET_ID;

        if (job.getSourceSiteDomain().equals("") || job.getSourceSiteDomain().equals("https://"))
            return JobStatus.INVALID_DOMAIN;

        if (job.getSinkSiteDomain().equals("") || job.getSinkSiteDomain().equals("https://"))
            return JobStatus.INVALID_DOMAIN;

        boolean okayMethod = false;
        for (PortMethod method : PortMethod.values()) {
            if (method.equals(job.getPortMethod()))
                okayMethod = true;
        }
        if (!okayMethod)
            return JobStatus.INVALID_PORT_METHOD;

        if (!job.getPublishMethod().equals(PublishMethod.upsert)
                && !job.getPublishMethod().equals(PublishMethod.replace))
            return JobStatus.INVALID_PUBLISH_METHOD;

        return JobStatus.SUCCESS;
    }

    private static boolean validateDestinationDomainArg(CommandLine cmd) {
        CommandLineOptions options = new CommandLineOptions();
        if(cmd.getOptionValue(options.DESTINATION_DOMAIN_FLAG) == null) {
            System.err.println("Missing required argument: -pd2,--" + options.DESTINATION_DOMAIN_FLAG + " is required");
            return false;
        }
        return true;
    }

    private static boolean validateSourceIdArg(CommandLine cmd) {
        CommandLineOptions options = new CommandLineOptions();
        if(cmd.getOptionValue(options.SOURCE_DATASET_ID_FLAG) == null) {
            System.err.println("Missing required argument: -pi1,--" + options.SOURCE_DATASET_ID_FLAG + " is required");
            return false;
        }
        return true;
    }

    private static boolean validateSourceDomainArg(CommandLine cmd) {
        CommandLineOptions options = new CommandLineOptions();
        if(cmd.getOptionValue(options.SOURCE_DOMAIN_FLAG) == null) {
            System.err.println("Missing required argument: -pd1,--" + options.SOURCE_DOMAIN_FLAG + " is required");
            return false;
        }
        return true;
    }

    private static boolean validatePortMethodArg(CommandLine cmd) {
        CommandLineOptions options = new CommandLineOptions();
        String portMethod = cmd.getOptionValue(options.PORT_METHOD_FLAG);
        if(portMethod == null) {
            System.err.println("Missing required argument: -pm,--" + options.PORT_METHOD_FLAG + " is required");
            return false;
        }

        boolean portMethodValid = false;
        for(PortMethod m : PortMethod.values()) {
            if(portMethod.equals(m.name()))
                portMethodValid = true;
        }
        if(!portMethodValid) {
            System.err.println("Invalid argument: -pm,--" + options.PORT_METHOD_FLAG + " must be: " +
                    Arrays.toString(PortMethod.values()));
            return false;
        }
        return true;
    }
}
TOP

Related Classes of com.socrata.datasync.validation.PortJobValidity

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.