View Javadoc

1   /*
2    * Copyright 2007-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.exceptions.i18n.app;
17  
18  import de.smartics.exceptions.code.NumberCode;
19  import de.smartics.exceptions.code.NumberCodeInfo;
20  
21  /**
22   * Defines the parsing exception codes for this package.
23   */
24  public enum ParseExceptionCode implements NumberCode
25  {
26    // ****************************** Enumeration *******************************
27  
28    /**
29     * The generic parsing error.
30     */
31    GENERIC(2000),
32  
33    /**
34     * Parsing an OGNL path expression failed.
35     */
36    OGNL(2000, 1),
37  
38    /**
39     * Parsing the value for a parent attribute failed because the <code>=</code>
40     * -sign is missing. The <code>=</code>-sign separates the attribute name from
41     * the index information.
42     * <p>
43     * The parent attribute is an attribute specified by the super class of an
44     * exception. The parent exception may be of a standard library and therefore
45     * cannot be annotated so the annotation is placed in the subclass.
46     * </p>
47     */
48    MISSING_PARENT_PROPERTY_SEPARATOR(2000, 2),
49  
50    /**
51     * Parsing the value for a parent attribute failed because the attribute in
52     * front of the <code>=</code>-sign is missing.
53     * <p>
54     * The parent attribute is an attribute specified by the super class of an
55     * exception. The parent exception may be of a standard library and therefore
56     * cannot be annotated so the annotation is placed in the subclass.
57     * </p>
58     */
59    MISSING_PARENT_PROPERTY_ATTRIBUTE(2000, 3),
60  
61    /**
62     * Parsing the value for a parent attribute failed because the index after the
63     * <code>=</code>-sign is missing.
64     * <p>
65     * The parent attribute is an attribute specified by the super class of an
66     * exception. The parent exception may be of a standard library and therefore
67     * cannot be annotated so the annotation is placed in the subclass.
68     * </p>
69     */
70    MISSING_PARENT_PROPERTY_INDEX(2000, 4);
71  
72    // ********************************* Fields *********************************
73  
74    // --- constants ------------------------------------------------------------
75  
76    // --- members --------------------------------------------------------------
77  
78    /**
79     * The code information.
80     */
81    private final NumberCodeInfo info;
82  
83    // ****************************** Constructors ******************************
84  
85    /**
86     * Convenience constructor.
87     *
88     * @param majorNumber the major part of the error code.
89     */
90    private ParseExceptionCode(final Integer majorNumber)
91    {
92      this(majorNumber, null);
93    }
94  
95    /**
96     * Convenience constructor.
97     *
98     * @param majorNumber the major part of the error code.
99     * @param minorNumber the minor part of the error code.
100    */
101   private ParseExceptionCode(final Integer majorNumber,
102       final Integer minorNumber)
103   {
104     this(readComponentId(), majorNumber, minorNumber);
105   }
106 
107   /**
108    * Default constructor.
109    *
110    * @param componentId the component identifier.
111    * @param majorNumber the major part of the error code.
112    * @param minorNumber the minor part of the error code.
113    */
114   private ParseExceptionCode(final String componentId,
115       final Integer majorNumber, final Integer minorNumber)
116   {
117     this.info = new NumberCodeInfo(componentId, majorNumber, minorNumber);
118   }
119 
120   // ********************************* Methods ********************************
121 
122   // --- init -----------------------------------------------------------------
123 
124   /**
125    * Used to access the identify for the exceptions raised by this component.
126    *
127    * @return the component identifier of this exception library.
128    */
129   private static String readComponentId()
130   {
131     return Constant.COMPONENT_ID;
132   }
133 
134   // --- get&set --------------------------------------------------------------
135 
136   // --- business -------------------------------------------------------------
137 
138   /**
139    * {@inheritDoc}
140    *
141    * @see de.smartics.exceptions.core.Code#getCode()
142    */
143   public String getCode()
144   {
145     return info.getCode();
146   }
147 
148   /**
149    * {@inheritDoc}
150    *
151    * @see de.smartics.exceptions.core.Code#getComponentId()
152    */
153   public String getComponentId()
154   {
155     return info.getComponentId();
156   }
157 
158   /**
159    * {@inheritDoc}
160    *
161    * @see de.smartics.exceptions.code.NumberCode#getMajorNumber()
162    */
163   public Integer getMajorNumber()
164   {
165     return info.getMajorNumber();
166   }
167 
168   /**
169    * {@inheritDoc}
170    *
171    * @see de.smartics.exceptions.code.NumberCode#getMinorNumber()
172    */
173   public Integer getMinorNumber()
174   {
175     return info.getMinorNumber();
176   }
177 
178   /**
179    * {@inheritDoc}
180    *
181    * @see de.smartics.exceptions.core.Code#getDisplayId()
182    */
183   public String getDisplayId()
184   {
185     return info.getDisplayId();
186   }
187 
188   // --- object basics --------------------------------------------------------
189 
190   /**
191    * Returns the string representation of the object.
192    *
193    * @return the string representation of the object.
194    */
195   @Override
196   public String toString()
197   {
198     return info.toString();
199   }
200 }