/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.country;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
import com.google.common.base.Preconditions;
/**
* Aug 4, 2009
*/
public class Country
{
private CountryCode code;
private String englishName;
private String localName;
private String regionsEnglishName;
private String regionsLocalName;
private Map<String, Region> regionsMapByCode = new LinkedHashMap<String, Region>();
private String callingCode;
public Country( final CountryCode code, final String englishName, final String localName, final String callingCode )
{
Preconditions.checkNotNull(code, "code cannot be null");
this.code = code;
this.englishName = englishName;
this.localName = localName;
this.callingCode = callingCode;
}
public CountryCode getCode()
{
return code;
}
public String getEnglishName()
{
return englishName;
}
public String getLocalName()
{
return localName;
}
public String getRegionsLocalName()
{
return regionsLocalName;
}
public void setRegionsLocalName( String regionsLocalName )
{
this.regionsLocalName = regionsLocalName;
}
public String getRegionsEnglishName()
{
return regionsEnglishName;
}
public void setRegionsEnglishName( String regionsEnglishName )
{
this.regionsEnglishName = regionsEnglishName;
}
public void addRegion( Region region )
{
Preconditions.checkNotNull(region, "region cannot be null");
regionsMapByCode.put( region.getCode(), region );
}
public Region getRegion( String code )
{
Preconditions.checkNotNull(code, "code cannot be null");
return regionsMapByCode.get( code );
}
public Collection<Region> getRegions()
{
return regionsMapByCode.values();
}
public boolean hasRegions()
{
return !regionsMapByCode.isEmpty();
}
public String getCallingCode()
{
return callingCode;
}
}