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 exception codes for problems with the configuration of the 23 * library. 24 */ 25 public enum ConfigurationExceptionCode implements NumberCode 26 { 27 // ****************************** Enumeration ******************************* 28 29 /** 30 * The generic configuration error. 31 */ 32 GENERIC(1000), 33 34 /** 35 * A configuration error signaling missing getter. 36 */ 37 CONFIGURATION_MISSING_GETTER(1000, 1), 38 39 /** 40 * A configuration error signaling an inaccessible getter. 41 */ 42 CONFIGURATION_INACCESSIBLE_GETTER(1000, 2), 43 44 /** 45 * A configuration error signaling a runtime problem while running the getter 46 * method's code. 47 */ 48 CONFIGURATION_RUNTIME_ACCESS(1000, 3), 49 50 /** 51 * A configuration error signaling that the getter method does not exist. 52 */ 53 CONFIGURATION_NOARG(1000, 4), 54 55 /** 56 * A configuration error signaling that accessing the getter raised a security 57 * exception. 58 */ 59 CONFIGURATION_SECURITY(1000, 5), 60 61 /** 62 * A configuration error signaling a runtime problem while accessing the 63 * property. 64 */ 65 CONFIGURATION_PROPERTY_RUNTIME_ACCESS(1000, 6), 66 67 /** 68 * A configuration error signaling that a property is not accessible. 69 */ 70 CONFIGURATION_INACCESSIBLE_PROPERTY(1000, 7), 71 72 /** 73 * A configuration error signaling that there is no getter to access a 74 * property. 75 */ 76 CONFIGURATION_NO_GETTER_FOR_PROPERTY(1000, 8), 77 78 /** 79 * A configuration error signaling that there is an error in the OGNL 80 * expression of a value. 81 */ 82 CONFIGURATION_OGNL_SYNTAX_ERROR(1000, 9), 83 84 /** 85 * A configuration error signaling that values for a compound message a 86 * missing. 87 */ 88 COMPOUND_MESSAGE_MISSING(1000, 10); 89 90 // ********************************* Fields ********************************* 91 92 // --- constants ------------------------------------------------------------ 93 94 // --- members -------------------------------------------------------------- 95 96 /** 97 * The code information. 98 */ 99 private final NumberCodeInfo info; 100 101 // ****************************** Constructors ****************************** 102 103 /** 104 * Convenience constructor. 105 * 106 * @param majorNumber the major part of the error code. 107 */ 108 private ConfigurationExceptionCode(final Integer majorNumber) 109 { 110 this(majorNumber, null); 111 } 112 113 /** 114 * Convenience constructor. 115 * 116 * @param majorNumber the major part of the error code. 117 * @param minorNumber the minor part of the error code. 118 */ 119 private ConfigurationExceptionCode(final Integer majorNumber, 120 final Integer minorNumber) 121 { 122 this(readComponentId(), majorNumber, minorNumber); 123 } 124 125 /** 126 * Default constructor. 127 * 128 * @param componentId the component identifier. 129 * @param majorNumber the major part of the error code. 130 * @param minorNumber the minor part of the error code. 131 */ 132 private ConfigurationExceptionCode(final String componentId, 133 final Integer majorNumber, final Integer minorNumber) 134 { 135 this.info = new NumberCodeInfo(componentId, majorNumber, minorNumber); 136 } 137 138 // ********************************* Methods ******************************** 139 140 // --- init ----------------------------------------------------------------- 141 142 /** 143 * Used to access the identify for the exceptions raised by this component. 144 * 145 * @return the component identifier of this exception library. 146 */ 147 private static String readComponentId() 148 { 149 return Constant.COMPONENT_ID; 150 } 151 152 // --- get&set -------------------------------------------------------------- 153 154 // --- business ------------------------------------------------------------- 155 156 @Override 157 public String getCode() 158 { 159 return info.getCode(); 160 } 161 162 /** 163 * {@inheritDoc} 164 */ 165 @Override 166 public String getComponentId() 167 { 168 return info.getComponentId(); 169 } 170 171 @Override 172 public Integer getMajorNumber() 173 { 174 return info.getMajorNumber(); 175 } 176 177 @Override 178 public Integer getMinorNumber() 179 { 180 return info.getMinorNumber(); 181 } 182 183 @Override 184 public String getDisplayId() 185 { 186 return info.getDisplayId(); 187 } 188 189 // --- object basics -------------------------------------------------------- 190 191 /** 192 * Returns the string representation of the object. 193 * 194 * @return the string representation of the object. 195 */ 196 @Override 197 public String toString() 198 { 199 return info.toString(); 200 } 201 }