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

com.amazonaws.codegen.model.config.BasicCodeGenConfig Maven / Gradle / Ivy

/*
 * Copyright (c) 2016. Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 * http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

package com.amazonaws.codegen.model.config;

import com.amazonaws.util.StringUtils;
import com.fasterxml.jackson.annotation.JsonProperty;

public class BasicCodeGenConfig {

    private static final String PACKAGE_PREFIX = "com.amazonaws.services.";

    private final String interfaceName;
    private final String packageName;
    private final String endPoint;
    private final String defaultRegion;

    public BasicCodeGenConfig(
            @JsonProperty(value = "serviceInterfaceName", required = true) String interfaceName,
            @Deprecated @JsonProperty(value = "sourcePackageName") String packageName,
            @JsonProperty(value = "packageSuffix") String packageSuffix,
            @JsonProperty(value = "defaultEndpoint") String endpoint,
            @JsonProperty(value = "defaultRegion") String defaultRegion) {

        this.interfaceName = interfaceName;

        if (packageName != null) {
            if (packageSuffix != null) {
                throw new IllegalArgumentException(
                        "Both packageName and packageSuffix supplied!");
            }
            this.packageName = packageName;
        } else if (packageSuffix != null) {
            this.packageName = PACKAGE_PREFIX + packageSuffix;
        } else {
            String name = interfaceName;
            if (name.startsWith("Amazon")) {
                name = name.substring(6);
            } else if (name.startsWith("AWS")) {
                name = name.substring(3);
            }
            this.packageName = PACKAGE_PREFIX + StringUtils.lowerCase(name);
        }

        this.endPoint = endpoint;
        this.defaultRegion = defaultRegion;
    }

    public String getInterfaceName() {
        return interfaceName;
    }

    public String getPackageName() {
        return packageName;
    }

    public String getEndpoint() {
        return endPoint;
    }

    public String getDefaultRegion() {
        return defaultRegion;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy