package org.marketcetera.util.ws.wrappers; import java.io.Serializable; import java.util.Locale; import org.apache.commons.lang.ObjectUtils; import org.marketcetera.util.misc.ClassVersion; /** * The marshalled form for a locale whose raw form is {@link Locale}. * * @author tlerios@marketcetera.com * @since 1.0.0 * @version $Id: MarshalledLocale.java 16154 2012-07-14 16:34:05Z colin $ */ /* $License$ */ @ClassVersion("$Id: MarshalledLocale.java 16154 2012-07-14 16:34:05Z colin $") public class MarshalledLocale implements Serializable { // CLASS DATA. private static final long serialVersionUID=1L; // INSTANCE DATA. private String mLanguage; private String mCountry; private String mVariant; // CONSTRUCTORS. /** * Creates a new marshalled form for the locale given in its raw * form. * * @param locale The locale, which may be null. */ public MarshalledLocale (Locale locale) { if (locale==null) { return; } setLanguage(locale.getLanguage()); setCountry(locale.getCountry()); setVariant(locale.getVariant()); } /** * Creates a new marshalled form. This empty constructor is * intended for use by JAXB or Java serialization. */ protected MarshalledLocale() {} // INSTANCE METHODS. /** * Set the receiver's language to the given one. * * @param language The language. */ public void setLanguage (String language) { mLanguage=language; } /** * Returns the receiver's language. * * @return The language. */ public String getLanguage() { return mLanguage; } /** * Set the receiver's country to the given one. * * @param country The country. */ public void setCountry (String country) { mCountry=country; } /** * Returns the receiver's country. * * @return The country. */ public String getCountry() { return mCountry; } /** * Set the receiver's variant to the given one. * * @param variant The variant. */ public void setVariant (String variant) { mVariant=variant; } /** * Returns the receiver's variant. * * @return The variant. */ public String getVariant() { return mVariant; } /** * Returns the raw form of the receiver. * * @return The raw form, which is null if the receiver's language * is null (regardless of country or variant). */ public Locale toLocale() { if (getLanguage()==null) { return null; } if (getCountry()==null) { return new Locale(getLanguage()); } if (getVariant()==null) { return new Locale(getLanguage(),getCountry()); } return new Locale(getLanguage(),getCountry(),getVariant()); } // Object. @Override public String toString() { return ObjectUtils.toString(toLocale()); } @Override public int hashCode() { return ObjectUtils.hashCode(toLocale()); } @Override public boolean equals (Object other) { if (this==other) { return true; } if ((other==null) || !getClass().equals(other.getClass())) { return false; } MarshalledLocale o=(MarshalledLocale)other; return ObjectUtils.equals(toLocale(),o.toLocale()); } }