View Javadoc

1   /*
2    * $Header: /home/cvs/jakarta-commons/validator/src/share/org/apache/commons/validator/Arg.java,v 1.17 2004/02/21 17:10:29 rleland Exp $
3    * $Revision: 1.17 $
4    * $Date: 2004/02/21 17:10:29 $
5    *
6    * ====================================================================
7    * Copyright 2001-2004 The Apache Software Foundation
8    *
9    * Licensed under the Apache License, Version 2.0 (the "License");
10   * you may not use this file except in compliance with the License.
11   * You may obtain a copy of the License at
12   *
13   *     http://www.apache.org/licenses/LICENSE-2.0
14   *
15   * Unless required by applicable law or agreed to in writing, software
16   * distributed under the License is distributed on an "AS IS" BASIS,
17   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18   * See the License for the specific language governing permissions and
19   * limitations under the License.
20   */
21  
22  package org.apache.commons.validator;
23  
24  import java.io.Serializable;
25  
26  /***
27   * <p>
28   * A default argument or an argument for a
29   * specific validator definition (ex: required)
30   * can be stored to pass into a message as parameters.  This can be used in a
31   * pluggable validator for constructing locale
32   * sensitive messages by using <code>java.text.MessageFormat</code>
33   * or an equivalent class.  The resource field can be
34   * used to determine if the value stored in the argument
35   * is a value to be retrieved from a locale sensitive
36   * message retrieval system like <code>java.util.PropertyResourceBundle</code>.
37   * The resource field defaults to 'true'.
38   * </p>
39   * <p>Instances of this class are configured with an &lt;arg&gt; xml element.</p>
40   */
41  public class Arg implements Cloneable, Serializable {
42  
43      /***
44       * The resource bundle name that this Arg's <code>key</code> should be
45       * resolved in (optional).
46       * @since Validator 1.1
47       */
48      protected String bundle = null;
49  
50      /***
51       * The key or value of the argument.
52       */
53      protected String key = null;
54  
55      /***
56       * The name dependency that this argument goes with (optional).
57       */
58      protected String name = null;
59  
60      /***
61       * This argument's position in the message. Set postion=0 to
62       * make a replacement in this string: "some msg {0}".
63       * @since Validator 1.1
64       */
65      protected int position = 0;
66  
67      /***
68       * Whether or not the key is a message resource (optional).  Defaults to
69       * true.  If it is 'true', the value will try to be resolved as a message
70       * resource.
71       */
72      protected boolean resource = true;
73  
74      /***
75       * Creates and returns a copy of this object.
76       * @return A copy of this object.
77       */
78      public Object clone() {
79          try {
80              return super.clone();
81  
82          } catch(CloneNotSupportedException e) {
83              throw new RuntimeException(e.toString());
84          }
85      }
86  
87      /***
88       * Returns the resource bundle name.
89       * @since Validator 1.1
90       */
91      public String getBundle() {
92          return this.bundle;
93      }
94  
95      /***
96       * Gets the key/value.
97       * @return the key value.
98       */
99      public String getKey() {
100         return this.key;
101     }
102 
103     /***
104      * Gets the name of the dependency.
105      * @return the name of the dependency.
106      */
107     public String getName() {
108         return this.name;
109     }
110 
111     /***
112      * Argument's replacement position.
113      * @return This argument's replacement position.
114      */
115     public int getPosition() {
116         return this.position;
117     }
118 
119     /***
120      * Gets whether or not the key is a resource.
121      * @return Returns true if key is a resource.
122      * @deprecated Use isResource() instead.
123      */
124     public boolean getResource() {
125         return this.isResource();
126     }
127 
128     /***
129      * Tests whether or not the key is a resource key or literal value.
130      * @return <code>true</code> if key is a resource key.
131      */
132     public boolean isResource() {
133         return this.resource;
134     }
135 
136     /***
137      * Sets the resource bundle name.
138      * @param bundle The new bundle name.
139      * @since Validator 1.1
140      */
141     public void setBundle(String bundle) {
142         this.bundle = bundle;
143     }
144 
145     /***
146      * Sets the key/value.
147      * @param key They to access the argument.
148      */
149     public void setKey(String key) {
150         this.key = key;
151     }
152 
153     /***
154      * Sets the name of the dependency.
155      * @param name the name of the dependency.
156      */
157     public void setName(String name) {
158         this.name = name;
159     }
160 
161     /***
162      * Set this argument's replacement position.
163      * @param position set this argument's replacement position.
164      */
165     public void setPosition(int position) {
166         this.position = position;
167     }
168 
169     /***
170      * Sets whether or not the key is a resource.
171      * @param resource If true indicates the key is a resource.
172      */
173     public void setResource(boolean resource) {
174         this.resource = resource;
175     }
176 
177     /***
178      * Returns a string representation of the object.
179      * @return a string representation of the object.
180      */
181     public String toString() {
182         StringBuffer results = new StringBuffer();
183 
184         results.append("Arg: name=");
185         results.append(name);
186         results.append("  key=");
187         results.append(key);
188         results.append("  resource=");
189         results.append(resource);
190         results.append("\n");
191 
192         return results.toString();
193     }
194 
195 }