View Javadoc

1   /**
2    * Licensed under the Artistic License; you may not use this file
3    * except in compliance with the License.
4    * You may obtain a copy of the License at
5    *
6    *      http://displaytag.sourceforge.net/license.html
7    *
8    * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
9    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
10   * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
11   */
12  package org.displaytag.exception;
13  
14  import org.apache.commons.lang.ArrayUtils;
15  import org.displaytag.Messages;
16  
17  
18  /**
19   * Exception thrown when a required attribute is not set. This is thrown when the user is required to set at least one
20   * of multiple attributes and the check can't be enforced by the tld.
21   * @author Fabrizio Giustina
22   * @version $Revision: 1081 $ ($Author: fgiust $)
23   */
24  public class MissingAttributeException extends BaseNestableJspTagException
25  {
26  
27      /**
28       * D1597A17A6.
29       */
30      private static final long serialVersionUID = 899149338534L;
31  
32      /**
33       * list of tag attributes.
34       */
35      private final String[] attributes;
36  
37      /**
38       * Constructor for MissingAttributeException.
39       * @param source Class where the exception is generated
40       * @param attributeNames String attribute name
41       */
42      public MissingAttributeException(Class source, String[] attributeNames)
43      {
44          super(source, Messages.getString("MissingAttributeException.msg", //$NON-NLS-1$
45              new Object[]{ArrayUtils.toString(attributeNames)}));
46  
47          // copy attributes to allow them to be retrieved using getAttributeNames()
48          this.attributes = (String[]) ArrayUtils.clone(attributeNames);
49      }
50  
51      /**
52       * @return SeverityEnum.ERROR
53       * @see org.displaytag.exception.BaseNestableJspTagException#getSeverity()
54       * @see org.displaytag.exception.SeverityEnum
55       */
56      public SeverityEnum getSeverity()
57      {
58          return SeverityEnum.ERROR;
59      }
60  
61      /**
62       * returns an array containing the names of missing attributes.
63       * @return String[] array of missing attributes
64       */
65      public String[] getAttributeNames()
66      {
67          return (String[]) ArrayUtils.clone(this.attributes);
68      }
69  
70  }