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 }