001 /*
002 * $Id: DatabaseBasicMessage.java 348369 2005-11-23 04:51:04Z niallp $
003 * $Revision: 348369 $
004 * $Date: 2005-11-23 04:51:04 +0000 (Wed, 23 Nov 2005) $
005 *
006 * ====================================================================
007 *
008 * Copyright 2003-2005 The Apache Software Foundation
009 *
010 * Licensed under the Apache License, Version 2.0 (the "License");
011 * you may not use this file except in compliance with the License.
012 * You may obtain a copy of the License at
013 *
014 * http://www.apache.org/licenses/LICENSE-2.0
015 *
016 * Unless required by applicable law or agreed to in writing, software
017 * distributed under the License is distributed on an "AS IS" BASIS,
018 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
019 * See the License for the specific language governing permissions and
020 * limitations under the License.
021 *
022 */
023
024 package org.apache.commons.resources.impl;
025
026
027
028
029
030 /**
031 * BasicMessage to allow standard ORM
032 * configuration (no complex keys).
033 *
034 * @author James Mitchell
035 *
036 */
037 public class DatabaseBasicMessage extends BasicMessage {
038
039 /**
040 * Default Constructor.
041 */
042 public DatabaseBasicMessage() {
043 super();
044 }
045
046 /**
047 * Construct a message for a specified Locale
048 * with the specified replacement values.
049 *
050 * @param locale Locale for this message
051 * @param key Message key for this message
052 * @param values Array of replacement values
053 */
054 public DatabaseBasicMessage(String locale, String key, Object[] values) {
055 super(key, values);
056 this.locale = locale;
057
058 }
059
060 private String locale = null;
061
062 /**
063 * Return the locale for the message.
064 *
065 * @return Returns the locale.
066 */
067 public String getLocale() {
068 return locale;
069 }
070
071 /**
072 * Set the locale for the message.
073 *
074 * @param locale The locale to set.
075 */
076 public void setLocale(String locale) {
077 this.locale = locale;
078 }
079
080 /**
081 * Set a replacement value for the message.
082 *
083 * @param value The replacement value.
084 */
085 public void setValue(String value) {
086 setValues(new String[]{value});
087 }
088
089 /**
090 * Return the replacement value for the message.
091 *
092 * @return The replacement value.
093 */
094 public String getValue() {
095 Object[] values = getValues();
096 if (values == null || values.length < 1) {
097 throw new IllegalStateException("The retrived value for msg " +
098 getKey() + "was null");
099 }
100 if (values.length > 1) {
101 throw new IllegalStateException("There were more than one values " +
102 "retrived value for msg " +
103 getKey());
104 }
105 return (String)getValues()[0];
106 }
107
108 /**
109 * Compare this message to another.
110 *
111 * @param obj The message to compare.
112 * @return 'true' if the messages are equal.
113 */
114 public boolean equals(Object obj) {
115 if (obj instanceof DatabaseBasicMessage){
116 if (((DatabaseBasicMessage)obj).getKey().equals(getKey()) &&
117 ((DatabaseBasicMessage)obj).getLocale().equals(this.locale)){
118 return true;
119 }
120 }
121 return false;
122 }
123
124 /**
125 * Return the hashcode for the message.
126 *
127 * @return The message's hash code.
128 */
129 public int hashCode() {
130 return super.hashCode();
131 }
132 }