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   * <p>
    23   * A default argument or an argument for a
    24   * specific validator definition (ex: required)
    25   * can be stored to pass into a message as parameters.  This can be used in a
    26   * pluggable validator for constructing locale
    27   * sensitive messages by using <code>java.text.MessageFormat</code>
    28   * or an equivalent class.  The resource field can be
    29   * used to determine if the value stored in the argument
    30   * is a value to be retrieved from a locale sensitive
    31   * message retrieval system like <code>java.util.PropertyResourceBundle</code>.
    32   * The resource field defaults to 'true'.
    33   * </p>
    34   * <p>Instances of this class are configured with an &lt;arg&gt; xml element.</p>
    35   *
    36   * @version $Revision: 478334 $ $Date: 2006-11-22 21:31:54 +0000 (Wed, 22 Nov 2006) $
    37   */
    38  public class Arg implements Cloneable, Serializable {
    39
    40      /***
    41       * The resource bundle name that this Arg's <code>key</code> should be
    42       * resolved in (optional).
    43       * @since Validator 1.1
    44       */
    45      protected String bundle = null;
    46
    47      /***
    48       * The key or value of the argument.
    49       */
    50      protected String key = null;
    51
    52      /***
    53       * The name dependency that this argument goes with (optional).
    54       */
    55      protected String name = null;
    56
    57      /***
    58       * This argument's position in the message. Set postion=0 to
    59       * make a replacement in this string: "some msg {0}".
    60       * @since Validator 1.1
    61       */
    62      protected int position = -1;
    63
    64      /***
    65       * Whether or not the key is a message resource (optional).  Defaults to
    66       * true.  If it is 'true', the value will try to be resolved as a message
    67       * resource.
    68       */
    69      protected boolean resource = true;
    70
    71      /***
    72       * Creates and returns a copy of this object.
    73       * @return A copy of this object.
    74       */
    75      public Object clone() {
    76          try {
    77              return super.clone();
    78
    79          } catch(CloneNotSupportedException e) {
    80              throw new RuntimeException(e.toString());
    81          }
    82      }
    83
    84      /***
    85       * Returns the resource bundle name.
    86       * @return the bundle name.
    87       * @since Validator 1.1
    88       */
    89      public String getBundle() {
    90          return this.bundle;
    91      }
    92
    93      /***
    94       * Gets the key/value.
    95       * @return the key value.
    96       */
    97      public String getKey() {
    98          return this.key;
    99      }
    100
    101     /***
    102      * Gets the name of the dependency.
    103      * @return the name of the dependency.
    104      */
    105     public String getName() {
    106         return this.name;
    107     }
    108
    109     /***
    110      * Argument's replacement position.
    111      * @return This argument's replacement position.
    112      */
    113     public int getPosition() {
    114         return this.position;
    115     }
    116
    117     /***
    118      * Tests whether or not the key is a resource key or literal value.
    119      * @return <code>true</code> if key is a resource key.
    120      */
    121     public boolean isResource() {
    122         return this.resource;
    123     }
    124
    125     /***
    126      * Sets the resource bundle name.
    127      * @param bundle The new bundle name.
    128      * @since Validator 1.1
    129      */
    130     public void setBundle(String bundle) {
    131         this.bundle = bundle;
    132     }
    133
    134     /***
    135      * Sets the key/value.
    136      * @param key They to access the argument.
    137      */
    138     public void setKey(String key) {
    139         this.key = key;
    140     }
    141
    142     /***
    143      * Sets the name of the dependency.
    144      * @param name the name of the dependency.
    145      */
    146     public void setName(String name) {
    147         this.name = name;
    148     }
    149
    150     /***
    151      * Set this argument's replacement position.
    152      * @param position set this argument's replacement position.
    153      */
    154     public void setPosition(int position) {
    155         this.position = position;
    156     }
    157
    158     /***
    159      * Sets whether or not the key is a resource.
    160      * @param resource If true indicates the key is a resource.
    161      */
    162     public void setResource(boolean resource) {
    163         this.resource = resource;
    164     }
    165
    166     /***
    167      * Returns a string representation of the object.
    168      * @return a string representation of the object.
    169      */
    170     public String toString() {
    171         StringBuffer results = new StringBuffer();
    172
    173         results.append("Arg: name=");
    174         results.append(name);
    175         results.append("  key=");
    176         results.append(key);
    177         results.append("  position=");
    178         results.append(position);
    179         results.append("  bundle=");
    180         results.append(bundle);
    181         results.append("  resource=");
    182         results.append(resource);
    183         results.append("\n");
    184
    185         return results.toString();
    186     }
    187
    188 }