/* * CREDIT SUISSE IS WILLING TO LICENSE THIS SPECIFICATION TO YOU ONLY UPON THE * CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS AGREEMENT. * PLEASE READ THE TERMS AND CONDITIONS OF THIS AGREEMENT CAREFULLY. BY * DOWNLOADING THIS SPECIFICATION, YOU ACCEPT THE TERMS AND CONDITIONS OF THE * AGREEMENT. IF YOU ARE NOT WILLING TO BE BOUND BY IT, SELECT THE "DECLINE" * BUTTON AT THE BOTTOM OF THIS PAGE. Specification: JSR-354 Money and Currency * API ("Specification") Copyright (c) 2012-2013, Credit Suisse All rights * reserved. */ package org.javamoney.regions.internal.data; import java.util.Arrays; import java.util.Collection; import java.util.Locale; import org.javamoney.regions.Region; import org.javamoney.regions.RegionType; import com.ibm.icu.util.TimeZone; /** * Implementation of a {@link Region} based on {@link java.util.Locale}, using the ISO * 3-letter code as Region code. * * @author Anatole Tresch */ public class ISO3Country implements Region { private Locale locale; private RegionType regionType; public ISO3Country(Locale locale, RegionType rt) { this.locale = locale; this.regionType = rt; } @Override public RegionType getRegionType() { return regionType; } @Override public String getRegionCode() { return locale.getISO3Country(); } @Override public int getNumericRegionCode() { return com.ibm.icu.util.Region.getInstance(locale.getCountry()) .getNumericCode(); } @Override public Collection<String> getTimezoneIds() { return Arrays.asList(TimeZone.getAvailableIDs(locale.getCountry())); } @Override public Locale getLocale() { return locale; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return locale.getDisplayName() + " [ISO3: code=" + locale.getISO3Country() + '/' + locale.getCountry() + ", regionType=" + regionType.getId() + "]"; } }