View Javadoc

1   /*
2    * $Id: Arg.java 280974 2005-09-15 00:06:59Z niallp $
3    * $Rev: 280974 $
4    * $Date: 2005-09-15 01:06:59 +0100 (Thu, 15 Sep 2005) $
5    *
6    * ====================================================================
7    * Copyright 2001-2005 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 = -1;
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       * @return the bundle name.
90       * @since Validator 1.1
91       */
92      public String getBundle() {
93          return this.bundle;
94      }
95  
96      /***
97       * Gets the key/value.
98       * @return the key value.
99       */
100     public String getKey() {
101         return this.key;
102     }
103 
104     /***
105      * Gets the name of the dependency.
106      * @return the name of the dependency.
107      */
108     public String getName() {
109         return this.name;
110     }
111 
112     /***
113      * Argument's replacement position.
114      * @return This argument's replacement position.
115      */
116     public int getPosition() {
117         return this.position;
118     }
119 
120     /***
121      * Tests whether or not the key is a resource key or literal value.
122      * @return <code>true</code> if key is a resource key.
123      */
124     public boolean isResource() {
125         return this.resource;
126     }
127 
128     /***
129      * Sets the resource bundle name.
130      * @param bundle The new bundle name.
131      * @since Validator 1.1
132      */
133     public void setBundle(String bundle) {
134         this.bundle = bundle;
135     }
136 
137     /***
138      * Sets the key/value.
139      * @param key They to access the argument.
140      */
141     public void setKey(String key) {
142         this.key = key;
143     }
144 
145     /***
146      * Sets the name of the dependency.
147      * @param name the name of the dependency.
148      */
149     public void setName(String name) {
150         this.name = name;
151     }
152 
153     /***
154      * Set this argument's replacement position.
155      * @param position set this argument's replacement position.
156      */
157     public void setPosition(int position) {
158         this.position = position;
159     }
160 
161     /***
162      * Sets whether or not the key is a resource.
163      * @param resource If true indicates the key is a resource.
164      */
165     public void setResource(boolean resource) {
166         this.resource = resource;
167     }
168 
169     /***
170      * Returns a string representation of the object.
171      * @return a string representation of the object.
172      */
173     public String toString() {
174         StringBuffer results = new StringBuffer();
175 
176         results.append("Arg: name=");
177         results.append(name);
178         results.append("  key=");
179         results.append(key);
180         results.append("  position=");
181         results.append(position);
182         results.append("  bundle=");
183         results.append(bundle);
184         results.append("  resource=");
185         results.append(resource);
186         results.append("\n");
187 
188         return results.toString();
189     }
190 
191 }