View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.validator;
18  
19  import java.io.Serializable;
20  
21  /***
22   * A variable that can be associated with a <code>Field</code> for
23   * passing in information to a pluggable validator.  Instances of this class are
24   * configured with a &lt;var&gt; xml element.
25   *
26   * @version $Revision: 478334 $ $Date: 2006-11-22 21:31:54 +0000 (Wed, 22 Nov 2006) $
27   */
28  public class Var implements Cloneable, Serializable {
29  
30      /***
31       * Int Constant for JavaScript type.  This can be used
32       * when auto-generating JavaScript.
33       */
34      public static final String JSTYPE_INT = "int";
35  
36      /***
37       * String Constant for JavaScript type.  This can be used
38       * when auto-generating JavaScript.
39       */
40      public static final String JSTYPE_STRING = "string";
41  
42      /***
43       * Regular Expression Constant for JavaScript type.  This can be used
44       * when auto-generating JavaScript.
45       */
46      public static final String JSTYPE_REGEXP = "regexp";
47  
48      /***
49       * The name of the variable.
50       */
51      private String name = null;
52  
53      /***
54       * The key or value the variable.
55       */
56      private String value = null;
57  
58      /***
59       * The optional JavaScript type of the variable.
60       */
61      private String jsType = null;
62  
63      /***
64       * Whether the variable is a resource [false]
65       */
66      private boolean resource = false;
67  
68      /***
69       * The bundle for a variable (when resource = 'true').
70       */
71      private String bundle = null;
72  
73      /***
74       * Default Constructor.
75       */
76      public Var() {
77          super();
78      }
79  
80      /***
81       * Constructs a variable with a specified name, value
82       * and Javascript type.
83       * @param name Variable name.
84       * @param value Variable value.
85       * @param jsType Variable Javascript type.
86       */
87      public Var(String name, String value, String jsType) {
88          this.name = name;
89          this.value = value;
90          this.jsType = jsType;
91      }
92  
93      /***
94       * Gets the name of the variable.
95       * @return The name of the variable.
96       */
97      public String getName() {
98          return this.name;
99      }
100 
101     /***
102      * Sets the name of the variable.
103      * @param name The name of the variable.
104      */
105     public void setName(String name) {
106         this.name = name;
107     }
108 
109     /***
110      * Gets the value of the variable.
111      * @return The value of the variable.
112      */
113     public String getValue() {
114         return this.value;
115     }
116 
117     /***
118      * Sets the value of the variable.
119      * @param value The value of the variable.
120      */
121     public void setValue(String value) {
122         this.value = value;
123     }
124 
125     /***
126      * Tests whether or not the value is a resource key or literal value.
127      * @return <code>true</code> if value is a resource key.
128      * @since Validator 1.2.0
129      */
130     public boolean isResource() {
131         return this.resource;
132     }
133 
134     /***
135      * Sets whether or not the value is a resource.
136      * @param resource If true indicates the value is a resource.
137      * @since Validator 1.2.0
138      */
139     public void setResource(boolean resource) {
140         this.resource = resource;
141     }
142 
143     /***
144      * Returns the resource bundle name.
145      * @return The bundle name.
146      * @since Validator 1.2.0
147      */
148     public String getBundle() {
149         return this.bundle;
150     }
151 
152     /***
153      * Sets the resource bundle name.
154      * @param bundle The new bundle name.
155      * @since Validator 1.2.0
156      */
157     public void setBundle(String bundle) {
158         this.bundle = bundle;
159     }
160 
161     /***
162      * Gets the JavaScript type of the variable.
163      * @return The Javascript type of the variable.
164      */
165     public String getJsType() {
166         return this.jsType;
167     }
168 
169     /***
170      * Sets the JavaScript type of the variable.
171      * @param jsType The Javascript type of the variable.
172      */
173     public void setJsType(String jsType) {
174         this.jsType = jsType;
175     }
176 
177     /***
178      * Creates and returns a copy of this object.
179      * @return A copy of the variable.
180      */
181     public Object clone() {
182         try {
183             return super.clone();
184 
185         } catch(CloneNotSupportedException e) {
186             throw new RuntimeException(e.toString());
187         }
188     }
189 
190     /***
191      * Returns a string representation of the object.
192      * @return A string representation of the variable.
193      */
194     public String toString() {
195         StringBuffer results = new StringBuffer();
196 
197         results.append("Var: name=");
198         results.append(name);
199         results.append("  value=");
200         results.append(value);
201         results.append("  resource=");
202         results.append(resource);
203         if (resource) {
204             results.append("  bundle=");
205             results.append(bundle);
206         }
207         results.append("  jsType=");
208         results.append(jsType);
209         results.append("\n");
210 
211         return results.toString();
212     }
213 
214 }