/*
* (C) 2004 - Geotechnical Software Services
*
* This code is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This code is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
*/
package no.geosoft.cc.country;
/**
* Class reprenting a country (according to ISO 3166-1). The class consist
* of both ISO code and name, where name is a localized version of the
* official country name.
*
* @see CountryManager
*
* @author <a href="mailto:jacob.dreyer@geosoft.no">Jacob Dreyer</a>
*/
public class Country
implements Comparable
{
private String isoCode_;
private String name_;
private String shortName_;
/**
* Create a country instance with given ISO code.
*
* @param isoCode ISO code of country.
*/
public Country (String isoCode)
{
isoCode_ = isoCode;
}
/**
* Create a copy of the country instance specified.
*
* @param country Country to copy.
*/
public Country (Country country)
{
isoCode_ = country.isoCode_;
name_ = country.name_;
shortName_ = country.shortName_;
}
/**
* Retur ISO code of this country.
*
* @return
*/
public String getIsoCode()
{
return isoCode_;
}
/**
* Return localized name of this country.
*
* @return Localized name of this country.
*/
public String getName()
{
return name_;
}
/**
* Set localized name of this country.
*
* @param name Localized name of this country.
*/
public void setName (String name)
{
name_ = name;
}
/**
* Return localized short name of this country.
*
* @return Localized short name of this country.
*/
public String getShortName()
{
return shortName_;
}
/**
* Set localized short name of this country.
*
* @param shortName Localized short name of this country.
*/
public void setShortName (String shortName)
{
shortName_ = shortName;
}
/**
* Retrun a string representation of this country.
*
* @return String representation of this country.
*/
public String toString()
{
return name_;
}
/**
* Lexiographically compare this country to the specified object.
*
* @param object Country to compare to.
* @return A negative integer, zero, or a positive integer as this
* object is less than, equal to, or greater than the
* specified object.
* @see Comparable
*/
public int compareTo (Object object)
{
Country country = (Country) object;
return name_.compareTo (country.name_);
}
/**
* Return hash code for this object.
*
* @return Hash code for this object.
*/
public int hashCode()
{
return isoCode_.hashCode();
}
/**
* Check if this object equals the specified object.
*
* @param object Object to compare to.
* @return True if this equals to the specified object,
* false otherwise.
*/
public boolean equals (Object object)
{
if (object == null) return false;
if (!(object instanceof Country)) return false;
return ((Country) object).isoCode_.equals (isoCode_);
}
}