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 }