001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.commons.validator;
018
019 import java.io.Serializable;
020
021 /**
022 * An alternative message can be associated with a <code>Field</code>
023 * and a pluggable validator instead of using the default message
024 * stored in the <code>ValidatorAction</code> (aka pluggable validator).
025 * Instances of this class are configured with a <msg> xml element.
026 *
027 * @version $Revision: 493905 $ $Date: 2007-01-08 03:11:38 +0100 (Mo, 08. Jan 2007) $
028 */
029 public class Msg implements Cloneable, Serializable {
030
031 /**
032 * The resource bundle name that this Msg's <code>key</code> should be
033 * resolved in (optional).
034 * @since Validator 1.1
035 */
036 protected String bundle = null;
037
038 /**
039 * The key or value of the argument.
040 */
041 protected String key = null;
042
043 /**
044 * The name dependency that this argument goes with (optional).
045 */
046 protected String name = null;
047
048 /**
049 * Whether or not the key is a message resource (optional). Defaults to
050 * true. If it is 'true', the value will try to be resolved as a message
051 * resource.
052 * @since Validator 1.1.4
053 */
054 protected boolean resource = true;
055
056 /**
057 * Returns the resource bundle name.
058 * @return The bundle name.
059 * @since Validator 1.1
060 */
061 public String getBundle() {
062 return this.bundle;
063 }
064
065 /**
066 * Sets the resource bundle name.
067 * @param bundle The new bundle name.
068 * @since Validator 1.1
069 */
070 public void setBundle(String bundle) {
071 this.bundle = bundle;
072 }
073
074 /**
075 * Gets the name of the dependency.
076 * @return The dependency name.
077 */
078 public String getName() {
079 return name;
080 }
081
082 /**
083 * Sets the name of the dependency.
084 * @param name The dependency name.
085 */
086 public void setName(String name) {
087 this.name = name;
088 }
089
090 /**
091 * Gets the key/value.
092 * @return The message key/value.
093 */
094 public String getKey() {
095 return key;
096 }
097
098 /**
099 * Sets the key/value.
100 * @param key The message key/value.
101 */
102 public void setKey(String key) {
103 this.key = key;
104 }
105
106 /**
107 * Tests whether or not the key is a resource key or literal value.
108 * @return <code>true</code> if key is a resource key.
109 * @since Validator 1.1.4
110 */
111 public boolean isResource() {
112 return this.resource;
113 }
114
115 /**
116 * Sets whether or not the key is a resource.
117 * @param resource If true indicates the key is a resource.
118 * @since Validator 1.1.4
119 */
120 public void setResource(boolean resource) {
121 this.resource = resource;
122 }
123
124 /**
125 * Creates and returns a copy of this object.
126 * @return A copy of the Msg.
127 */
128 public Object clone() {
129 try {
130 return super.clone();
131
132 } catch(CloneNotSupportedException e) {
133 throw new RuntimeException(e.toString());
134 }
135 }
136
137 /**
138 * Returns a string representation of the object.
139 * @return Msg String representation.
140 */
141 public String toString() {
142 StringBuffer results = new StringBuffer();
143
144 results.append("Msg: name=");
145 results.append(name);
146 results.append(" key=");
147 results.append(key);
148 results.append(" resource=");
149 results.append(resource);
150 results.append(" bundle=");
151 results.append(bundle);
152 results.append("\n");
153
154 return results.toString();
155 }
156
157 }