View Javadoc

1   /*
2    * Copyright 2012-2013 smartics, Kronseder & Reiner GmbH
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package de.smartics.properties.api.core.domain;
17  
18  import java.util.List;
19  
20  /**
21   * Signals that the value does not match the given constraints.
22   */
23  public class PropertyValidationException extends PropertyDescriptorException
24  {
25    // ********************************* Fields *********************************
26  
27    // --- constants ------------------------------------------------------------
28  
29    /**
30     * The class version identifier.
31     * <p>
32     * The value of this constant is {@value}.
33     * </p>
34     */
35    private static final long serialVersionUID = 1L;
36  
37    // --- members --------------------------------------------------------------
38  
39    // ****************************** Initializer *******************************
40  
41    // ****************************** Constructors ******************************
42  
43    /**
44     * Default constructor.
45     *
46     * @param message the detail message (which is saved for later retrieval by
47     *          the {@link #getMessage()} method).
48     */
49    public PropertyValidationException(final PropertyValidationMessageBean message)
50    {
51      super(message);
52    }
53  
54    // ****************************** Inner Classes *****************************
55  
56    // ********************************* Methods ********************************
57  
58    // --- init -----------------------------------------------------------------
59  
60    // --- factory --------------------------------------------------------------
61  
62    /**
63     * Creates an instance of the validation exception.
64     *
65     * @param propertyDescriptor the descriptor of the property raising the
66     *          exception.
67     * @param constraints the property constraints that failed to be met.
68     * @param value the value of the property that does not meet the constraints.
69     *          If the value is not serializable, its string representation is
70     *          stored.
71     * @return the created exception instance.
72     */
73    public static final PropertyValidationException invalid(
74        final PropertyDescriptor propertyDescriptor,
75        final List<? extends PropertyConstraint<?>> constraints, final Object value)
76    {
77      return new PropertyValidationException(new PropertyValidationMessageBean(
78          propertyDescriptor, constraints, value));
79    }
80  
81    // --- get&set --------------------------------------------------------------
82  
83    @Override
84    public final PropertyValidationMessageBean getMessageBean()
85    {
86      return (PropertyValidationMessageBean) super.getMessageBean();
87    }
88  
89    // --- business -------------------------------------------------------------
90  
91    // --- object basics --------------------------------------------------------
92  
93  }