View Javadoc

1   /*
2    * $Id: Var.java 289160 2005-09-15 05:48:33Z niallp $
3    * $Rev: 289160 $
4    * $Date: 2005-09-15 06:48:33 +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   * A variable that can be associated with a <code>Field</code> for
28   * passing in information to a pluggable validator.  Instances of this class are
29   * configured with a &lt;var&gt; xml element.
30   */
31  public class Var implements Cloneable, Serializable {
32  
33      /***
34       * Int Constant for JavaScript type.  This can be used
35       * when auto-generating JavaScript.
36       */
37      public static final String JSTYPE_INT = "int";
38  
39      /***
40       * String Constant for JavaScript type.  This can be used
41       * when auto-generating JavaScript.
42       */
43      public static final String JSTYPE_STRING = "string";
44  
45      /***
46       * Regular Expression Constant for JavaScript type.  This can be used
47       * when auto-generating JavaScript.
48       */
49      public static final String JSTYPE_REGEXP = "regexp";
50  
51      /***
52       * The name of the variable.
53       */
54      private String name = null;
55  
56      /***
57       * The key or value the variable.
58       */
59      private String value = null;
60  
61      /***
62       * The optional JavaScript type of the variable.
63       */
64      private String jsType = null;
65  
66      /***
67       * Whether the variable is a resource [false]
68       */
69      private boolean resource = false;
70  
71      /***
72       * The bundle for a variable (when resource = 'true').
73       */
74      private String bundle = null;
75  
76      /***
77       * Default Constructor.
78       */
79      public Var() {
80          super();
81      }
82  
83      /***
84       * Constructs a variable with a specified name, value
85       * and Javascript type.
86       * @param name Variable name.
87       * @param value Variable value.
88       * @param jsType Variable Javascript type.
89       */
90      public Var(String name, String value, String jsType) {
91          this.name = name;
92          this.value = value;
93          this.jsType = jsType;
94      }
95  
96      /***
97       * Gets the name of the variable.
98       * @return The name of the variable.
99       */
100     public String getName() {
101         return this.name;
102     }
103 
104     /***
105      * Sets the name of the variable.
106      * @param name The name of the variable.
107      */
108     public void setName(String name) {
109         this.name = name;
110     }
111 
112     /***
113      * Gets the value of the variable.
114      * @return The value of the variable.
115      */
116     public String getValue() {
117         return this.value;
118     }
119 
120     /***
121      * Sets the value of the variable.
122      * @param value The value of the variable.
123      */
124     public void setValue(String value) {
125         this.value = value;
126     }
127 
128     /***
129      * Tests whether or not the value is a resource key or literal value.
130      * @return <code>true</code> if value is a resource key.
131      * @since Validator 1.2.0
132      */
133     public boolean isResource() {
134         return this.resource;
135     }
136 
137     /***
138      * Sets whether or not the value is a resource.
139      * @param resource If true indicates the value is a resource.
140      * @since Validator 1.2.0
141      */
142     public void setResource(boolean resource) {
143         this.resource = resource;
144     }
145 
146     /***
147      * Returns the resource bundle name.
148      * @return The bundle name.
149      * @since Validator 1.2.0
150      */
151     public String getBundle() {
152         return this.bundle;
153     }
154 
155     /***
156      * Sets the resource bundle name.
157      * @param bundle The new bundle name.
158      * @since Validator 1.2.0
159      */
160     public void setBundle(String bundle) {
161         this.bundle = bundle;
162     }
163 
164     /***
165      * Gets the JavaScript type of the variable.
166      * @return The Javascript type of the variable.
167      */
168     public String getJsType() {
169         return this.jsType;
170     }
171 
172     /***
173      * Sets the JavaScript type of the variable.
174      * @param jsType The Javascript type of the variable.
175      */
176     public void setJsType(String jsType) {
177         this.jsType = jsType;
178     }
179 
180     /***
181      * Creates and returns a copy of this object.
182      * @return A copy of the variable.
183      */
184     public Object clone() {
185         try {
186             return super.clone();
187 
188         } catch(CloneNotSupportedException e) {
189             throw new RuntimeException(e.toString());
190         }
191     }
192 
193     /***
194      * Returns a string representation of the object.
195      * @return A string representation of the variable.
196      */
197     public String toString() {
198         StringBuffer results = new StringBuffer();
199 
200         results.append("Var: name=");
201         results.append(name);
202         results.append("  value=");
203         results.append(value);
204         results.append("  resource=");
205         results.append(resource);
206         if (resource) {
207             results.append("  bundle=");
208             results.append(bundle);
209         }
210         results.append("  jsType=");
211         results.append(jsType);
212         results.append("\n");
213 
214         return results.toString();
215     }
216 
217 }