1 /** 2 * Copyright 2005-2015 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.rice.krad.messages; 17 18 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; 19 20 /** 21 * Holds the text and metadata for a message that will be given by the system, including validation 22 * messages, UI text (labels, instructions), and other text that has been externalized from the 23 * system 24 * 25 * @author Kuali Rice Team (rice.collab@kuali.org) 26 */ 27 public class Message extends PersistableBusinessObjectBase { 28 29 private String namespaceCode; 30 private String componentCode; 31 private String key; 32 private String locale; 33 private String description; 34 private String text; 35 36 public Message() { 37 super(); 38 } 39 40 /** 41 * Namespace code (often an application or module code) that message is associated with, used for 42 * grouping messages 43 * 44 * @return String namespace code 45 */ 46 public String getNamespaceCode() { 47 return namespaceCode; 48 } 49 50 /** 51 * Setter for the namespace code the message should be associated with 52 * 53 * @param namespaceCode 54 */ 55 public void setNamespaceCode(String namespaceCode) { 56 this.namespaceCode = namespaceCode; 57 } 58 59 /** 60 * A code within the namespace that identifies a component or group, used for further grouping 61 * of messages within the namespace 62 * 63 * <p> 64 * Examples here could be a bean id, the class name of an object, or any application/module defined code 65 * </p> 66 * 67 * @return String representing a component code 68 */ 69 public String getComponentCode() { 70 return componentCode; 71 } 72 73 /** 74 * Setter for the component code the message should be associated with 75 * 76 * @param componentCode 77 */ 78 public void setComponentCode(String componentCode) { 79 this.componentCode = componentCode; 80 } 81 82 /** 83 * A key that uniquely identifies the message within the namespace and component 84 * 85 * <p> 86 * Within the UIF, this is generally used to indicate the property path the message is associated with 87 * (for example: "control.label"). For validation messages this is generally a combination that identifies 88 * the type of validation message and the validation performed (for example: "error.account.missing") 89 * </p> 90 * 91 * @return String message key 92 */ 93 public String getKey() { 94 return key; 95 } 96 97 /** 98 * Setter for the message key 99 * 100 * @param key 101 */ 102 public void setKey(String key) { 103 this.key = key; 104 } 105 106 /** 107 * Locale code the message is represented for, used for supporting messages in different 108 * languages 109 * 110 * @return message locale code 111 */ 112 public String getLocale() { 113 return locale; 114 } 115 116 /** 117 * Setter for the message locale code 118 * 119 * @param locale 120 */ 121 public void setLocale(String locale) { 122 this.locale = locale; 123 } 124 125 /** 126 * A description for the message 127 * 128 * <p> 129 * Not used by the framework, here for purposes of editing of messages and providing a description 130 * of the message to users 131 * </p> 132 * 133 * @return String message description 134 */ 135 public String getDescription() { 136 return description; 137 } 138 139 /** 140 * Setter for the message description 141 * 142 * @param description 143 */ 144 public void setDescription(String description) { 145 this.description = description; 146 } 147 148 /** 149 * Text value for the message 150 * 151 * <p> 152 * This holds the actual text for the message which is what will be displayed. Depending on how 153 * the message is being used it might contain parameters or other special syntax 154 * </p> 155 * 156 * @return String text for the message 157 */ 158 public String getText() { 159 return text; 160 } 161 162 /** 163 * Setter for the message text 164 * 165 * @param text 166 */ 167 public void setText(String text) { 168 this.text = text; 169 } 170 171 /** 172 * Generate toString using message key fields 173 * 174 * @return String representing the message object 175 */ 176 @Override 177 public final String toString() { 178 StringBuffer buffer = new StringBuffer(); 179 180 buffer.append("namespaceCode=" + this.namespaceCode); 181 buffer.append(",componentCode=" + this.componentCode); 182 buffer.append(",key=" + this.key); 183 buffer.append(",locale=" + this.locale); 184 185 return buffer.toString(); 186 } 187 }