blob: 3a6c4f1ad7066a692caa2fae153631bbfde81953 [file] [log] [blame]
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* 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.apache.ws.scout.registry.infomodel;
import java.util.Locale;
import javax.xml.registry.infomodel.LocalizedString;
/**
* Implements JAXR Interface.
* For futher details, look into the JAXR API Javadoc.
*
* @author Anil Saldhana <anil@apache.org>
*/
public class LocalizedStringImpl implements LocalizedString
{
private String charsetName;
private Locale locale;
private String value;
public LocalizedStringImpl()
{
this.locale = Locale.getDefault();
this.charsetName = LocalizedString.DEFAULT_CHARSET_NAME;
}
/**
* Constuctor for a LocalizedString.
*
* @param locale the locale; must not be null
* @param value the value; may be null
* @param charsetName the charset; must not be null
*/
public LocalizedStringImpl(Locale locale, String value, String charsetName)
{
if (locale == null)
{
throw new IllegalArgumentException("locale cannot be null");
}
if (charsetName == null)
{
throw new IllegalArgumentException("charsetName cannot be null");
}
this.locale = locale;
this.value = value;
this.charsetName = charsetName;
}
public String getCharsetName()
{
return charsetName;
}
public Locale getLocale()
{
return locale;
}
public String getValue()
{
return value;
}
public void setCharsetName(String charsetName)
{
if (charsetName == null)
{
throw new IllegalArgumentException("charsetName cannot be null");
}
this.charsetName = charsetName;
}
public void setLocale(Locale locale)
{
if (locale == null)
{
throw new IllegalArgumentException("locale cannot be null");
}
this.locale = locale;
}
public void setValue(String value)
{
this.value = value;
}
/**
* There is a spec ambiguity here as it does not define how equals is determined for LocalizedString
* but they are intended to be used in Collections.
* We define it as locale, charsetName and value being equal.
*
* @param o the other object
* @return true if they are equal
*/
public boolean equals(Object o)
{
if (this == o) return true;
if (!(o instanceof LocalizedStringImpl)) return false;
final LocalizedStringImpl localizedString = (LocalizedStringImpl) o;
if (!charsetName.equals(localizedString.charsetName)) return false;
if (!locale.equals(localizedString.locale)) return false;
if (value != null ? !value.equals(localizedString.value) : localizedString.value != null) return false;
return true;
}
public int hashCode()
{
int result;
result = charsetName.hashCode();
result = 29 * result + locale.hashCode();
result = 29 * result + (value != null ? value.hashCode() : 0);
return result;
}
public String toString()
{
return value;
}
}