org.cloudifysource.esc.driver.provisioning.privateEc2.RegionUtils.java Source code

Java tutorial

Introduction

Here is the source code for org.cloudifysource.esc.driver.provisioning.privateEc2.RegionUtils.java

Source

/*******************************************************************************
 * Copyright (c) 2013 GigaSpaces Technologies Ltd. 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. You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software distributed under the License 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 org.cloudifysource.esc.driver.provisioning.privateEc2;

import org.apache.commons.lang.math.NumberUtils;

import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;

/**
 * Utility class for region, availability zone and location id conversion.
 * 
 * @author victor
 * 
 */
public final class RegionUtils {

    private RegionUtils() {
    }

    /**
     * Convert an availability zone to com.amazonaws.regions.Region.
     * 
     * @param availabilityZone
     *            The availability zone to convert (i.e. us-east-1a, us-east-1b, ...).
     * @return The converted com.amazonaws.regions.Region.
     */
    public static Region convertAvailabilityZone2Region(final String availabilityZone) {
        Region region;
        String regionStr = availabilityZone;
        String lastChar = availabilityZone.substring(availabilityZone.length() - 1, availabilityZone.length());
        if (!NumberUtils.isDigits(lastChar)) {
            regionStr = availabilityZone.substring(0, availabilityZone.length() - 1);

        }
        region = Region.getRegion(Regions.valueOf(regionStr.replaceAll("-", "_").toUpperCase()));
        return region;
    }

    /**
     * Convert a location id to com.amazonaws.regions.Region.
     * 
     * @param locationId
     *            The location id to convert (i.e. us-east-1)
     * @return The converted com.amazonaws.regions.Region.
     */
    public static Region convertLocationId2Region(final String locationId) {
        String regionString = locationId.replaceAll("-", "_").toUpperCase();
        Regions regionEnum = Regions.valueOf(regionString);
        Region region = Region.getRegion(regionEnum);
        return region;
    }

    /**
     * Convert an availability zone to location id.
     * 
     * @param availabilityZone
     *            The availability zone to convert (i.e. us-east-1a, us-east-1b, ...)
     * @return The converted location id.
     */
    public static String convertAvailabilityZone2LocationId(final String availabilityZone) {
        String locationId = availabilityZone;
        String lastChar = availabilityZone.substring(availabilityZone.length() - 1, availabilityZone.length());
        if (!NumberUtils.isDigits(lastChar)) {
            locationId = availabilityZone.substring(0, availabilityZone.length() - 1);
        }
        return locationId;
    }
}