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

com.vendasta.sales.v1.internal.SalesGeneratedClient Maven / Gradle / Ivy

The newest version!
/**
Code generated by sdkgen
Generated on 2020-04-07 19:12:16.797285 +0000 UTC using container gcr.io/repcore-prod/sdkgen:latest
DO NOT EDIT!
*/

package com.vendasta.sales.v1.internal;

import com.google.protobuf.*;
import com.vendasta.vax.Environment;
import com.vendasta.vax.EnvironmentConfig;
import com.vendasta.vax.RequestOptions;
import com.vendasta.vax.SDKException;
import com.vendasta.sales.v1.Config;
import java.io.InputStream;

public class SalesGeneratedClient implements SalesClientInterface {
    private SalesClientInterface transport;

    public SalesGeneratedClient(Environment environment) {
        this(environment, 10000);
    }

    public SalesGeneratedClient(Environment environment, Options options) {
        this.transport = this.getTransportClient(environment, options);
    }

    public SalesGeneratedClient(Environment environment, float defaultTimeout) {
        Options opts = new Options.Builder().setDefaultTimeout(defaultTimeout).build();
        this.transport = this.getTransportClient(environment, opts);
    }

    public SalesGeneratedClient(Environment environment, InputStream serviceAccount, float defaultTimeout) {
        Options opts = new Options.Builder().setDefaultTimeout(defaultTimeout).build();
        this.transport = this.getTransportClient(environment, serviceAccount, opts);
    }

    public SalesGeneratedClient(Environment environment, InputStream serviceAccount, Options options) {
        this.transport = this.getTransportClient(environment, serviceAccount, options);
    }

    private SalesClientInterface getTransportClient(Environment environment, Options options) {
        EnvironmentConfig config = Config.getEnvironmentConfig(environment);
        if (options.getUseHttp()) {
            return new SalesHTTPClient(config.getHost(), config.getScope(), config.isSecure(), options.getDefaultTimeout());
        }
        try {
            Class.forName("io.grpc.stub.AbstractStub");
            return new SalesGRPCClient(config.getHost(), config.getScope(), config.isSecure(), options.getDefaultTimeout());
        } catch (ClassNotFoundException e) {
            return new SalesHTTPClient(config.getHost(), config.getScope(), config.isSecure(), options.getDefaultTimeout());
        }
    }

    private SalesClientInterface getTransportClient(Environment environment, InputStream serviceAccount, Options options) {
        EnvironmentConfig config = Config.getEnvironmentConfig(environment);
        if (options.getUseHttp()) {
            return new SalesHTTPClient(config.getHost(), config.getScope(), serviceAccount, config.isSecure(), options.getDefaultTimeout());
        }
        try {
            Class.forName("io.grpc.stub.AbstractStub");
            return new SalesGRPCClient(config.getHost(), config.getScope(), serviceAccount, config.isSecure(), options.getDefaultTimeout());
        } catch (ClassNotFoundException e) {
            return new SalesHTTPClient(config.getHost(), config.getScope(), serviceAccount, config.isSecure(), options.getDefaultTimeout());
        }
    }
    
    @Override
    public GetAutoAssignConfigResponse GetAutoAssignConfig(GetAutoAssignConfigRequest req, RequestOptions.Builder options) throws SDKException {
        return this.transport.GetAutoAssignConfig(req, options);
    }
    
    @Override
    public Empty CreateOrUpdateAutoAssignConfig(CreateOrUpdateAutoAssignConfigRequest req, RequestOptions.Builder options) throws SDKException {
        return this.transport.CreateOrUpdateAutoAssignConfig(req, options);
    }
    
    @Override
    public Salesperson GetSalesperson(GetSalespersonRequest req, RequestOptions.Builder options) throws SDKException {
        return this.transport.GetSalesperson(req, options);
    }
    

    public static class Options {
        private Boolean useHttp = false;
        private float defaultTimeout = 10000;

        Options(Builder builder) {
            if (builder.useHttp != null) {
                this.useHttp = builder.useHttp;
            }
            if (builder.defaultTimeout != null) {
                this.defaultTimeout = builder.defaultTimeout;
            }
        }

        Boolean getUseHttp() {
            return this.useHttp;
        }

        Float getDefaultTimeout() {
            return this.defaultTimeout;
        }

        public static class Builder {
            private Boolean useHttp;
            private Float defaultTimeout;

            /**
            * Returns a Builder for Options, which is a mutable representation of the object.  Once the
            * client has built up an object they can then create an immutable Options object using the
            * build function.
            * @return A fresh Builder instance with no values set
            **/
            public static Builder newBuilder() {
                return new Builder();
            }

            public Builder useHttp() {
                this.useHttp = true;
                return this;
            }

            public Builder setDefaultTimeout(Float defaultTimeout) {
                this.defaultTimeout = defaultTimeout;
                return this;
            }

            public Options build() {
                return new Options(this);
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy