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: 478334 $ $Date: 2006-11-22 21:31:54 +0000 (Wed, 22 Nov 2006) $
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: }
|