001/*
002 *   Licensed to the Apache Software Foundation (ASF) under one
003 *   or more contributor license agreements.  See the NOTICE file
004 *   distributed with this work for additional information
005 *   regarding copyright ownership.  The ASF licenses this file
006 *   to you under the Apache License, Version 2.0 (the
007 *   "License"); you may not use this file except in compliance
008 *   with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 *   Unless required by applicable law or agreed to in writing,
013 *   software distributed under the License is distributed on an
014 *   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 *   KIND, either express or implied.  See the License for the
016 *   specific language governing permissions and limitations
017 *   under the License.
018 *
019 */
020
021package org.apache.directory.api.i18n;
022
023
024import java.text.MessageFormat;
025import java.util.Locale;
026import java.util.MissingResourceException;
027import java.util.ResourceBundle;
028
029
030/**
031 * Provides i18n handling of error codes.
032 * About formatting see also {@link MessageFormat}
033 *
034 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
035 */
036public enum I18n
037{
038    // asn1
039    ERR_00001_BAD_TRANSITION_FROM_STATE("ERR_00001_BAD_TRANSITION_FROM_STATE"),
040    ERR_00002_BAD_TRANSITION("ERR_00002_BAD_TRANSITION"),
041    ERR_00003_CANNOT_PUT_PDU_IN_NULL_BUFFER("ERR_00003_CANNOT_PUT_PDU_IN_NULL_BUFFER"),
042    ERR_00004_PDU_BUFFER_SIZE_TOO_SMALL("ERR_00004_PDU_BUFFER_SIZE_TOO_SMALL"),
043    ERR_00005_LENGTH_OVERFLOW("ERR_00005_LENGTH_OVERFLOW"),
044    ERR_00006_LENGTH_EXTENSION_RESERVED("ERR_00006_LENGTH_EXTENSION_RESERVED"),
045    ERR_00007_TLV_NULL("ERR_00007_TLV_NULL"),
046    ERR_00008_VALUE_LENGTH_ABOVE_EXPECTED_LENGTH("ERR_00008_VALUE_LENGTH_ABOVE_EXPECTED_LENGTH"),
047    ERR_00009_MORE_TLV_EXPECTED("ERR_00009_MORE_TLV_EXPECTED"),
048    ERR_00010_TRUNCATED_PDU("ERR_00010_TRUNCATED_PDU"),
049    ERR_00011_LENGTH_TOO_LONG_FOR_DEFINITE_FORM("ERR_00011_LENGTH_TOO_LONG_FOR_DEFINITE_FORM"),
050    ERR_00013_ODD_NUM_OF_CHARS("ERR_00013_ODD_NUM_OF_CHARS"),
051    ERR_00014_ILLEGAL_HEX_CHAR("ERR_00014_ILLEGAL_HEX_CHAR"),
052    ERR_00016_END_OF_STREAM("ERR_00016_END_OF_STREAM"),
053    ERR_00017_EOF_FOUND_LENGTH_EXPECTED("ERR_00017_EOF_FOUND_LENGTH_EXPECTED"),
054    ERR_00018_DER_LENGTH_ABOVE_4_BYTES("ERR_00018_DER_LENGTH_ABOVE_4_BYTES"),
055    ERR_00019_EOF_FOUND_IN_LENGTH("ERR_00019_EOF_FOUND_IN_LENGTH"),
056    ERR_00020_CORRUPTED_STREAM("ERR_00020_CORRUPTED_STREAM"),
057    ERR_00021_EOF_FOUND_IN_OBJECT("ERR_00021_EOF_FOUND_IN_OBJECT"),
058    ERR_00022_READ_PAST_END_OF_FILE("ERR_00022_READ_PAST_END_OF_FILE"),
059    ERR_00023_UNKNOWN_BER_OBJECT("ERR_00023_UNKNOWN_BER_OBJECT"),
060    ERR_00024_OBJECT_NOT_DER_ENCODABLE("ERR_00024_OBJECT_NOT_DER_ENCODABLE"),
061    ERR_00025_DER_OCTET_STRING_EXPECTED("ERR_DER_OCTET_STRING_EXPECTED_00025"),
062    ERR_00026_CANNOT_CONVERT_OCTETS("ERR_00026_CANNOT_CONVERT_OCTETS"),
063    ERR_00027_NOT_IMPLEMENTED("ERR_00027_NOT_IMPLEMENTED"),
064    ERR_00028_INTERNAL_ERROR_ENCODING_BITSTRING("ERR_00028_INTERNAL_ERROR_ENCODING_BITSTRING"),
065    ERR_00029_NULL_OR_NEG_LENGTH_NOT_ALLOWED("ERR_00029_NULL_OR_NEG_LENGTH_NOT_ALLOWED"),
066    ERR_00030_BIT_NUMBER_OUT_OF_BOUND("ERR_00030_BIT_NUMBER_OUT_OF_BOUND"),
067    ERR_00031_CANNOT_FIND_BIT("ERR_00031_CANNOT_FIND_BIT"),
068    ERR_00032_NULL_OID("ERR_00032_NULL_OID"),
069    ERR_00033_INVALID_OID("ERR_00033_INVALID_OID"),
070    ERR_00034_0_BYTES_LONG_BOOLEAN("ERR_00034_0_BYTES_LONG_BOOLEAN"),
071    ERR_00035_N_BYTES_LONG_BOOLEAN("ERR_00035_N_BYTES_LONG_BOOLEAN"),
072    ERR_00036_0_BYTES_LONG_INTEGER("ERR_00036_0_BYTES_LONG_INTEGER"),
073    ERR_00037_ABOVE_4_BYTES_INTEGER("ERR_00037_ABOVE_4_BYTES_INTEGER"),
074    ERR_00038_VALUE_NOT_IN_RANGE("ERR_00038_VALUE_NOT_IN_RANGE"),
075    ERR_00039_0_BYTES_LONG_LONG("ERR_00039_0_BYTES_LONG_LONG"),
076    ERR_00041_CURRENT_LENGTH_EXCEED_EXPECTED_LENGTH("ERR_00041_CURRENT_LENGTH_EXCEED_EXPECTED_LENGTH"),
077    ERR_00042_PDU_SIZE_TOO_LONG("ERR_00042_PDU_SIZE_TOO_LONG"),
078    ERR_00043_REMAINING_BYTES_FOR_DECODED_PDU("ERR_00043_REMAINING_BYTES_FOR_DECODED_PDU"),
079
080    // cursor
081    ERR_02001_MONITOR("ERR_02001_MONITOR"),
082    ERR_02002_FAILURE_ON_UNDERLYING_CURSOR("ERR_02002_FAILURE_ON_UNDERLYING_CURSOR"),
083    ERR_02003_REMOVAL_NOT_SUPPORTED("ERR_02003_REMOVAL_NOT_SUPPORTED"),
084    ERR_02004_EMPTY_CURSOR("ERR_02004_EMPTY_CURSOR"),
085    ERR_02005_START_INDEX_OUT_OF_RANGE("ERR_02005_START_INDEX_OUT_OF_RANGE"),
086    ERR_02006_END_INDEX_OUT_OF_RANGE("ERR_02006_END_INDEX_OUT_OF_RANGE"),
087    ERR_02007_START_INDEX_ABOVE_END_INDEX("ERR_02007_START_INDEX_ABOVE_END_INDEX"),
088    ERR_02008_LIST_MAY_BE_SORTED("ERR_02008_LIST_MAY_BE_SORTED"),
089    ERR_02009_CURSOR_NOT_POSITIONED("ERR_02009_CURSOR_NOT_POSITIONED"),
090    ERR_02010_NO_COMPARATOR_CANT_MOVE_BEFORE("ERR_02010_NO_COMPARATOR_CANT_MOVE_BEFORE"),
091    ERR_02011_NO_COMPARATOR_CANT_MOVE_AFTER("ERR_02011_NO_COMPARATOR_CANT_MOVE_AFTER"),
092    ERR_02012_CANNOT_ACCESS_IF_BEFORE_FIRST("ERR_02012_CANNOT_ACCESS_IF_BEFORE_FIRST"),
093    ERR_02013_CANNOT_ACCESS_IF_AFTER_LAST("ERR_02013_CANNOT_ACCESS_IF_AFTER_LAST"),
094    ERR_02014_UNSUPPORTED_OPERATION("ERR_02014_UNSUPPORTED_OPERATION"),
095
096    // dsml-parser
097    ERR_03001("ERR_03001"),
098    ERR_03002("ERR_03002"),
099    ERR_03003("ERR_03003"),
100    ERR_03004("ERR_03004"),
101    ERR_03005("ERR_03005"),
102    ERR_03006("ERR_03006"),
103    ERR_03007("ERR_03007"),
104    ERR_03008("ERR_03008"),
105    ERR_03009("ERR_03009"),
106    ERR_03010("ERR_03010"),
107    ERR_03011("ERR_03011"),
108    ERR_03012("ERR_03012"),
109    ERR_03013("ERR_03013"),
110    ERR_03014("ERR_03014"),
111    ERR_03015("ERR_03015"),
112    ERR_03016("ERR_03016"),
113    ERR_03017("ERR_03017"),
114    ERR_03018("ERR_03018"),
115    ERR_03019("ERR_03019"),
116    ERR_03020("ERR_03020"),
117    ERR_03021("ERR_03021"),
118    ERR_03022("ERR_03022"),
119    ERR_03023("ERR_03023"),
120    ERR_03024("ERR_03024"),
121    ERR_03025("ERR_00025"),
122    ERR_03026("ERR_03026"),
123    ERR_03027("ERR_03027"),
124    ERR_03028("ERR_03028"),
125    ERR_03029("ERR_03029"),
126    ERR_03030("ERR_03030"),
127    ERR_03031("ERR_03031"),
128    ERR_03032("ERR_03032"),
129    ERR_03033("ERR_03033"),
130    ERR_03034("ERR_03034"),
131    ERR_03035("ERR_03035"),
132    ERR_03036("ERR_03036"),
133    ERR_03037("ERR_03037"),
134    ERR_03038("ERR_03038"),
135    ERR_03039("ERR_03039"),
136    ERR_03040("ERR_03040"),
137
138    // dsml-engine
139    ERR_03101_MISSING_CONNECTION_TO("ERR_03101_MISSING_CONNECTION_TO"),
140
141    // ldap
142    ERR_04001_NULL_IDENTIFICATION_TAG("ERR_04001_NULL_IDENTIFICATION_TAG"),
143    ERR_04002_BAD_PRECENDENCE("ERR_04002_BAD_PRECENDENCE"),
144    ERR_04003_NULL_AUTHENTICATION_LEVEL("ERR_04003_NULL_AUTHENTICATION_LEVEL"),
145    ERR_04004_PARSER_FAILURE_ACI_ITEM("ERR_04004_PARSER_FAILURE_ACI_ITEM"),
146    ERR_04005("ERR_04005"),
147    ERR_04006("ERR_04006"),
148    ERR_04007("ERR_04007"),
149    ERR_04008("ERR_04008"),
150    ERR_04009("ERR_04009"),
151    ERR_04010("ERR_04010"),
152    ERR_04011("ERR_04011"),
153    ERR_04012("ERR_04012"),
154    ERR_04013("ERR_04013"),
155    ERR_04014("ERR_04014"),
156    ERR_04015("ERR_04015"),
157    ERR_04016("ERR_04016"),
158    ERR_04017("ERR_04017"),
159    ERR_04018("ERR_04018"),
160    ERR_04019("ERR_04019"),
161    ERR_04020("ERR_04020"),
162    ERR_04021("ERR_04021"),
163    ERR_04022("ERR_04022"),
164    ERR_04023("ERR_04023"),
165    ERR_04024("ERR_04024"),
166    ERR_04025("ERR_04025"),
167    ERR_04026("ERR_04026"),
168    ERR_04027("ERR_04027"),
169    ERR_04028("ERR_04028"),
170    ERR_04029("ERR_04029"),
171    ERR_04030("ERR_04030"),
172    ERR_04031("ERR_04031"),
173    ERR_04032("ERR_04032"),
174    ERR_04033("ERR_04033"),
175    ERR_04034("ERR_04034"),
176    ERR_04035("ERR_04035"),
177    ERR_04036("ERR_04036"),
178    ERR_04037("ERR_04037"),
179    ERR_04038("ERR_04038"),
180    ERR_04039("ERR_04039"),
181    ERR_04040("ERR_04040"),
182    ERR_04041("ERR_04041"),
183    ERR_04042("ERR_04042"),
184    ERR_04043("ERR_04043"),
185    ERR_04044("ERR_04044"),
186    ERR_04045("ERR_04045"),
187    ERR_04046("ERR_04046"),
188    ERR_04047("ERR_04047"),
189    ERR_04048("ERR_04048"),
190    ERR_04049("ERR_04049"),
191    ERR_04050("ERR_04050"),
192    ERR_04051("ERR_04051"),
193    ERR_04052("ERR_04052"),
194    ERR_04053("ERR_04053"),
195    ERR_04054("ERR_04054"),
196    ERR_04055("ERR_04055"),
197    ERR_04056("ERR_04056"),
198    ERR_04057("ERR_04057"),
199    ERR_04058("ERR_04058"),
200    ERR_04059("ERR_04059"),
201    ERR_04060("ERR_04060"),
202    ERR_04061("ERR_04061"),
203    ERR_04062("ERR_04062"),
204    ERR_04063("ERR_04063"),
205    ERR_04064("ERR_04064"),
206    ERR_04065("ERR_04065"),
207    ERR_04066("ERR_04066"),
208    ERR_04067("ERR_04067"),
209    ERR_04068("ERR_04068"),
210    ERR_04069("ERR_04069"),
211    ERR_04070("ERR_04070"),
212    ERR_04071("ERR_04071"),
213    ERR_04072("ERR_04072"),
214    ERR_04073("ERR_04073"),
215    ERR_04074("ERR_04074"),
216    ERR_04075("ERR_04075"),
217    ERR_04076("ERR_04076"),
218    ERR_04077("ERR_04077"),
219    ERR_04078("ERR_04078"),
220    ERR_04079("ERR_04079"),
221    ERR_04080("ERR_04080"),
222    ERR_04081("ERR_04081"),
223    ERR_04082("ERR_04082"),
224    ERR_04083("ERR_04083"),
225    ERR_04084("ERR_04084"),
226    ERR_04085("ERR_04085"),
227    ERR_04086("ERR_04086"),
228    ERR_04087("ERR_04087"),
229    ERR_04088("ERR_04088"),
230    ERR_04089("ERR_04089"),
231    ERR_04090("ERR_04090"),
232    ERR_04091("ERR_04091"),
233    ERR_04092("ERR_04092"),
234    ERR_04093("ERR_04093"),
235    ERR_04094("ERR_04094"),
236    ERR_04095("ERR_04095"),
237    ERR_04096("ERR_04096"),
238    ERR_04097("ERR_04097"),
239    ERR_04098("ERR_04098"),
240    ERR_04099("ERR_04099"),
241    ERR_04100("ERR_04100"),
242    ERR_04101("ERR_04101"),
243    ERR_04102("ERR_04102"),
244    ERR_04103("ERR_04103"),
245    ERR_04104("ERR_04104"),
246    ERR_04105("ERR_04105"),
247    ERR_04106("ERR_04106"),
248    ERR_04107("ERR_04107"),
249    ERR_04108("ERR_04108"),
250    ERR_04109("ERR_04109"),
251    ERR_04110("ERR_04110"),
252    ERR_04111("ERR_04111"),
253    ERR_04112("ERR_04112"),
254    ERR_04113("ERR_04113"),
255    ERR_04114("ERR_04114"),
256    ERR_04115("ERR_04115"),
257    ERR_04116("ERR_04116"),
258    ERR_04117("ERR_04117"),
259    ERR_04118("ERR_04118"),
260    ERR_04119("ERR_04119"),
261    ERR_04120("ERR_04120"),
262    ERR_04121("ERR_04121"),
263    ERR_04122("ERR_04122"),
264    ERR_04123("ERR_04123"),
265    ERR_04124("ERR_04124"),
266    ERR_04125("ERR_04125"),
267    ERR_04126("ERR_04126"),
268    ERR_04127("ERR_04127"),
269    ERR_04128("ERR_04128"),
270    ERR_04129("ERR_04129"),
271    ERR_04130("ERR_04130"),
272    ERR_04131("ERR_04131"),
273    ERR_04132("ERR_04132"),
274    ERR_04133("ERR_04133"),
275    ERR_04134("ERR_04134"),
276    ERR_04135("ERR_04135"),
277    ERR_04136("ERR_04136"),
278    ERR_04137("ERR_04137"),
279    ERR_04138("ERR_04138"),
280    ERR_04139("ERR_04139"),
281    ERR_04140_UNACCEPTABLE_RESULT_CODE("ERR_04140_UNACCEPTABLE_RESULT_CODE"),
282    ERR_04141("ERR_04141"),
283    ERR_04142("ERR_04142"),
284    ERR_04143("ERR_04143"),
285    ERR_04144("ERR_04144"),
286    ERR_04145("ERR_04145"),
287    ERR_04146("ERR_04146"),
288    ERR_04147("ERR_04147"),
289    ERR_04148("ERR_04148"),
290    ERR_04149("ERR_04149"),
291    ERR_04150("ERR_04150"),
292    ERR_04151("ERR_04151"),
293    ERR_04152("ERR_04152"),
294    ERR_04153("ERR_04153"),
295    ERR_04154("ERR_04154"),
296    ERR_04155("ERR_04155"),
297    ERR_04156("ERR_04156"),
298    ERR_04157("ERR_04157"),
299    ERR_04158("ERR_04158"),
300    ERR_04159("ERR_04159"),
301    ERR_04160("ERR_04160"),
302    ERR_04161("ERR_04161"),
303    ERR_04162("ERR_04162"),
304    ERR_04163("ERR_04163"),
305    ERR_04164("ERR_04164"),
306    ERR_04165("ERR_04165"),
307    ERR_04166("ERR_04166"),
308    ERR_04167("ERR_04167"),
309    ERR_04168("ERR_04168"),
310    ERR_04169("ERR_04169"),
311    ERR_04170("ERR_04170"),
312    ERR_04171("ERR_04171"),
313    ERR_04172("ERR_04172"),
314    ERR_04173("ERR_04173"),
315    ERR_04174("ERR_04174"),
316    ERR_04175("ERR_04175"),
317    ERR_04176("ERR_04176"),
318    ERR_04177("ERR_04177"),
319    ERR_04178("ERR_04178"),
320    ERR_04179("ERR_04179"),
321    ERR_04180("ERR_04180"),
322    ERR_04181("ERR_04181"),
323    ERR_04182("ERR_04182"),
324    ERR_04183("ERR_04183"),
325    ERR_04184("ERR_04184"),
326    ERR_04185("ERR_04185"),
327    ERR_04186("ERR_04186"),
328    ERR_04187("ERR_04187"),
329    ERR_04188("ERR_04188"),
330    ERR_04189("ERR_04189"),
331    ERR_04190("ERR_04190"),
332    ERR_04191("ERR_04191"),
333    ERR_04192("ERR_04192"),
334    ERR_04193("ERR_04193"),
335    ERR_04194("ERR_04194"),
336    ERR_04195("ERR_04195"),
337    ERR_04196("ERR_04196"),
338    ERR_04197("ERR_04197"),
339    ERR_04198("ERR_04198"),
340    ERR_04199("ERR_04199"),
341    ERR_04200("ERR_04200"),
342    ERR_04201("ERR_04201"),
343    ERR_04202("ERR_04202"),
344    ERR_04203("ERR_04203"),
345    ERR_04204("ERR_04204"),
346    ERR_04205("ERR_04205"),
347    ERR_04206("ERR_04206"),
348    ERR_04207("ERR_04207"),
349    ERR_04208("ERR_04208"),
350    ERR_04209_EMPTY_TYPE_NOT_ALLOWED("ERR_04209_EMPTY_TYPE_NOT_ALLOWED"),
351    ERR_04210("ERR_04210"),
352    ERR_04211("ERR_04211"),
353    ERR_04212("ERR_04212"),
354    ERR_04213("ERR_04213"),
355    ERR_04214("ERR_04214"),
356    ERR_04215("ERR_04215"),
357    ERR_04216("ERR_04216"),
358    ERR_04217("ERR_04217"),
359    ERR_04218("ERR_04218"),
360    ERR_04219_ARGUMENT1_NULL("ERR_04219_ARGUMENT1_NULL"),
361    ERR_04220_ARGUMENT2_NULL("ERR_04220_ARGUMENT2_NULL"),
362    ERR_04221("ERR_04221"),
363    ERR_04222("ERR_04222"),
364    ERR_04223("ERR_04223"),
365    ERR_04224("ERR_04224"),
366    ERR_04225("ERR_04225"),
367    ERR_04226("ERR_04226"),
368    ERR_04227("ERR_04227"),
369    ERR_04228("ERR_04228"),
370    ERR_04229("ERR_04229"),
371    ERR_04230("ERR_04230"),
372    ERR_04231("ERR_04231"),
373    ERR_04232("ERR_04232"),
374    ERR_04233("ERR_04233"),
375    ERR_04234("ERR_04234"),
376    ERR_04235("ERR_04235"),
377    ERR_04236("ERR_04236"),
378    ERR_04237("ERR_04237"),
379    ERR_04238("ERR_04238"),
380    ERR_04239("ERR_04239"),
381    ERR_04240("ERR_04240"),
382    ERR_04241("ERR_04241"),
383    ERR_04242("ERR_04242"),
384    ERR_04243("ERR_04243"),
385    ERR_04244("ERR_04244"),
386    ERR_04245("ERR_04245"),
387    ERR_04246("ERR_04246"),
388    ERR_04247("ERR_04247"),
389    ERR_04248("ERR_04248"),
390    ERR_04249("ERR_04249"),
391    ERR_04250("ERR_04250"),
392    ERR_04251("ERR_04251"),
393    ERR_04252("ERR_04252"),
394    ERR_04253("ERR_04253"),
395    ERR_04254("ERR_04254"),
396    ERR_04255("ERR_04255"),
397    ERR_04256("ERR_04256"),
398    ERR_04257("ERR_04257"),
399    ERR_04258("ERR_04258"),
400    ERR_04259("ERR_04259"),
401    ERR_04260("ERR_04260"),
402    ERR_04261("ERR_04261"),
403    ERR_04262("ERR_04262"),
404    ERR_04263("ERR_04263"),
405    ERR_04264("ERR_04264"),
406    ERR_04265("ERR_04265"),
407    ERR_04266("ERR_04266"),
408    ERR_04267("ERR_04267"),
409    ERR_04268_OID_NOT_FOUND("ERR_04268_OID_NOT_FOUND"),
410    ERR_04269("ERR_04269"),
411    ERR_04270("ERR_04270"),
412    ERR_04271("ERR_04271"),
413    ERR_04272("ERR_04272"),
414    ERR_04273("ERR_04273"),
415    ERR_04274("ERR_04274"),
416    ERR_04275("ERR_04275"),
417    ERR_04276("ERR_04276"),
418    ERR_04277("ERR_04277"),
419    ERR_04278("ERR_04278"),
420    ERR_04279("ERR_04279"),
421    ERR_04280("ERR_04280"),
422    ERR_04281("ERR_04281"),
423    ERR_04282("ERR_04282"),
424    ERR_04283("ERR_04283"),
425    ERR_04284("ERR_04284"),
426    ERR_04285("ERR_04285"),
427    ERR_04286("ERR_04286"),
428    ERR_04287("ERR_04287"),
429    ERR_04288("ERR_04288"),
430    ERR_04289("ERR_04289"),
431    ERR_04290("ERR_04290"),
432    ERR_04291("ERR_04291"),
433    ERR_04292("ERR_04292"),
434    ERR_04293("ERR_04293"),
435    ERR_04294("ERR_04294"),
436    ERR_04295("ERR_04295"),
437    ERR_04296("ERR_04296"),
438    ERR_04297("ERR_04297"),
439    ERR_04298("ERR_04298"),
440    ERR_04299("ERR_04299"),
441    ERR_04300("ERR_04300"),
442    ERR_04301("ERR_04301"),
443    ERR_04302("ERR_04302"),
444    ERR_04303("ERR_04303"),
445    ERR_04304("ERR_04304"),
446    ERR_04305("ERR_04305"),
447    ERR_04306("ERR_04306"),
448    ERR_04307("ERR_04307"),
449    ERR_04308("ERR_04308"),
450    ERR_04309("ERR_04309"),
451    ERR_04310("ERR_04310"),
452    ERR_04311("ERR_04311"),
453    ERR_04312("ERR_04312"),
454    ERR_04313("ERR_04313"),
455    ERR_04314("ERR_04314"),
456    ERR_04315("ERR_04315"),
457    ERR_04316("ERR_04316"),
458    ERR_04317("ERR_04317"),
459    ERR_04318("ERR_04318"),
460    ERR_04319("ERR_04319"),
461    ERR_04320("ERR_04320"),
462    ERR_04321("ERR_04321"),
463    ERR_04322("ERR_04322"),
464    ERR_04323("ERR_04323"),
465    ERR_04324("ERR_04324"),
466    ERR_04325("ERR_04325"),
467    ERR_04326("ERR_04326"),
468    ERR_04327("ERR_04327"),
469    ERR_04328("ERR_04328"),
470    ERR_04329("ERR_04329"),
471    ERR_04330("ERR_04330"),
472    ERR_04331("ERR_04331"),
473    ERR_04332("ERR_04332"),
474    ERR_04333("ERR_04333"),
475    ERR_04334("ERR_04334"),
476    ERR_04335("ERR_04335"),
477    ERR_04336("ERR_04336"),
478    ERR_04337("ERR_04337"),
479    ERR_04338("ERR_04338"),
480    ERR_04339("ERR_04339"),
481    ERR_04340("ERR_04340"),
482    ERR_04341("ERR_04341"),
483    ERR_04342("ERR_04342"),
484    ERR_04343("ERR_04343"),
485    ERR_04344("ERR_04344"),
486    ERR_04345("ERR_04345"),
487    ERR_04346("ERR_04346"),
488    ERR_04347("ERR_04347"),
489    ERR_04348("ERR_04348"),
490    ERR_04349("ERR_04349"),
491    ERR_04350("ERR_04350"),
492    ERR_04351("ERR_04351"),
493    ERR_04352("ERR_04352"),
494    ERR_04353("ERR_04353"),
495    ERR_04354("ERR_04354"),
496    ERR_04355("ERR_04355"),
497    ERR_04356("ERR_04356"),
498    ERR_04357("ERR_04357"),
499    ERR_04358("ERR_04358"),
500    ERR_04359("ERR_04359"),
501    ERR_04360("ERR_04360"),
502    ERR_04361("ERR_04361"),
503    ERR_04362("ERR_04362"),
504    ERR_04363("ERR_04363"),
505    ERR_04364("ERR_04364"),
506    ERR_04365("ERR_04365"),
507    ERR_04366("ERR_04366"),
508    ERR_04367("ERR_04367"),
509    ERR_04368("ERR_04368"),
510    ERR_04369("ERR_04369"),
511    ERR_04370("ERR_04370"),
512    ERR_04371("ERR_04371"),
513    ERR_04372("ERR_04372"),
514    ERR_04373("ERR_04373"),
515    ERR_04374("ERR_04374"),
516    ERR_04375("ERR_04375"),
517    ERR_04376("ERR_04376"),
518    ERR_04377("ERR_04377"),
519    ERR_04378("ERR_04378"),
520    ERR_04379("ERR_04379"),
521    ERR_04380("ERR_04380"),
522    ERR_04381("ERR_04381"),
523    ERR_04382("ERR_04382"),
524    ERR_04383("ERR_04383"),
525    ERR_04384("ERR_04384"),
526    ERR_04385("ERR_04385"),
527    ERR_04386("ERR_04386"),
528    ERR_04387("ERR_04387"),
529    ERR_04388("ERR_04388"),
530    ERR_04389("ERR_04389"),
531    ERR_04390("ERR_04390"),
532    ERR_04391("ERR_04391"),
533    ERR_04392("ERR_04392"),
534    ERR_04393("ERR_04393"),
535    ERR_04394("ERR_04394"),
536    ERR_04395("ERR_04395"),
537    ERR_04396("ERR_04396"),
538    ERR_04397("ERR_04397"),
539    ERR_04398("ERR_04398"),
540    ERR_04399("ERR_04399"),
541    ERR_04400("ERR_04400"),
542    ERR_04401("ERR_04401"),
543    ERR_04402("ERR_04402"),
544    ERR_04403("ERR_04403"),
545    ERR_04404("ERR_04404"),
546    ERR_04405("ERR_04405"),
547    ERR_04406("ERR_04406"),
548    ERR_04407("ERR_04407"),
549    ERR_04408("ERR_04408"),
550    ERR_04409("ERR_04409"),
551    ERR_04410("ERR_04410"),
552    ERR_04411("ERR_04411"),
553    ERR_04412("ERR_04412"),
554    ERR_04413("ERR_04413"),
555    ERR_04414("ERR_04414"),
556    ERR_04415("ERR_04415"),
557    ERR_04416("ERR_04416"),
558    ERR_04417("ERR_04417"),
559    ERR_04418("ERR_04418"),
560    ERR_04419("ERR_04419"),
561    ERR_04420("ERR_04420"),
562    ERR_04421("ERR_04421"),
563    ERR_04422("ERR_04422"),
564    ERR_04423("ERR_04423"),
565    ERR_04424("ERR_04424"),
566    ERR_04425("ERR_04425"),
567    ERR_04426("ERR_04426"),
568    ERR_04427("ERR_04427"),
569    ERR_04428("ERR_04428"),
570    ERR_04429("ERR_04429"),
571    ERR_04430("ERR_04430"),
572    ERR_04431("ERR_04431"),
573    ERR_04432("ERR_04432"),
574    ERR_04433("ERR_04433"),
575    ERR_04434("ERR_04434"),
576    ERR_04435("ERR_04435"),
577    ERR_04436("ERR_04436"),
578    ERR_04437("ERR_04437"),
579    ERR_04438("ERR_04438"),
580    ERR_04439("ERR_04439"),
581    ERR_04440("ERR_04440"),
582    ERR_04441("ERR_04441"),
583    ERR_04442_NOT_EXISTING_ATRIBUTE_TYPE("ERR_04442_NOT_EXISTING_ATRIBUTE_TYPE"),
584    ERR_04443("ERR_04443"),
585    ERR_04444("ERR_04444"),
586    ERR_04445("ERR_04445"),
587    ERR_04446("ERR_04446"),
588    ERR_04447_CANNOT_NORMALIZE_VALUE("ERR_04447_CANNOT_NORMALIZE_VALUE"),
589    ERR_04448("ERR_04448"),
590    ERR_04449("ERR_04449"),
591    ERR_04450("ERR_04450"),
592    ERR_04451("ERR_04451"),
593    ERR_04452("ERR_04452"),
594    ERR_04453("ERR_04453"),
595    ERR_04454("ERR_04454"),
596    ERR_04455("ERR_04455"),
597    ERR_04456("ERR_04456"),
598    ERR_04457_NULL_ATTRIBUTE_ID("ERR_04457_NULL_ATTRIBUTE_ID"),
599    ERR_04458("ERR_04458"),
600    ERR_04459("ERR_04459"),
601    ERR_04460_ATTRIBUTE_TYPE_NULL_NOT_ALLOWED("ERR_04460_ATTRIBUTE_TYPE_NULL_NOT_ALLOWED"),
602    ERR_04461("ERR_04461"),
603    ERR_04462("ERR_04462"),
604    ERR_04463("ERR_04463"),
605    ERR_04464("ERR_04464"),
606    ERR_04465("ERR_04465"),
607    ERR_04466("ERR_04466"),
608    ERR_04467("ERR_04467"),
609    ERR_04468("ERR_04468"),
610    ERR_04469("ERR_04469"),
611    ERR_04470("ERR_04470"),
612    ERR_04471("ERR_04471"),
613    ERR_04472("ERR_04472"),
614    ERR_04473_NOT_VALID_VALUE("ERR_04473_NOT_VALID_VALUE"),
615    ERR_04474("ERR_04474"),
616    ERR_04475("ERR_04475"),
617    ERR_04476("ERR_04476"),
618    ERR_04477_NO_VALID_AT_FOR_THIS_ID("ERR_04477_NO_VALID_AT_FOR_THIS_ID"),
619    ERR_04478_NO_VALUE_NOT_ALLOWED("ERR_04478_NO_VALUE_NOT_ALLOWED"),
620    ERR_04479_INVALID_SYNTAX_VALUE("ERR_04479_INVALID_SYNTAX_VALUE"),
621    ERR_04480_END_OF_STREAM("ERR_04480_END_OF_STREAM"),
622    ERR_04481_ENTRY_NULL_VALUE("ERR_04481_ENTRY_NULL_VALUE"),
623    ERR_04482_CANNOT_SUBTYPE_COLLECTIVE("ERR_04482_CANNOT_SUBTYPE_COLLECTIVE"),
624    ERR_04483_COLLECTIVE_NOT_MULTI_VALUED("ERR_04483_COLLECTIVE_NOT_MULTI_VALUED"),
625    ERR_04484_COLLECTIVE_NOT_ALLOWED_IN_MUST("ERR_04484_COLLECTIVE_NOT_ALLOWED_IN_MUST"),
626    ERR_04485_COLLECTIVE_NOT_ALLOWED_IN_MAY("ERR_04485_COLLECTIVE_NOT_ALLOWED_IN_MAY"),
627    ERR_04486_VALUE_ALREADY_EXISTS("ERR_04486_VALUE_ALREADY_EXISTS"),
628    ERR_04487_ATTRIBUTE_IS_SINGLE_VALUED("ERR_04487_ATTRIBUTE_IS_SINGLE_VALUED"),
629    ERR_04488_SYNTAX_INVALID("ERR_04488_SYNTAX_INVALID"),
630      
631    // ldap-client-api  4100-
632    ERR_4100_TLS_HANDSHAKE_ERROR( "ERR_4100_TLS_HANDSHAKE_ERROR" ),
633 
634    // ldap-constants
635    ERR_05001_UNKNOWN_AUTHENT_LEVEL("ERR_05001_UNKNOWN_AUTHENT_LEVEL"),
636
637    // ldap-converter
638    ERR_06001_EMPTY_OR_NULL_SCHEMA_OBJECT("ERR_06001_EMPTY_OR_NULL_SCHEMA_OBJECT"),
639    ERR_06002_PARSER_FAILURE("ERR_06002_PARSER_FAILURE"),
640    ERR_06003_NO_NAME("ERR_06003_NO_NAME"),
641    ERR_06004_CANNOT_GENERATE_SOURCES("ERR_06004_CANNOT_GENERATE_SOURCES"),
642    ERR_06005_NULL_SCHEMA("ERR_06005_NULL_SCHEMA"),
643    ERR_06006_NO_PROPERTY("ERR_06006_NO_PROPERTY"),
644
645    // ldap-jndi
646    // no exceptions to translate
647
648    // ldap-schema
649    ERR_08001("ERR_08001"),
650    ERR_08002("ERR_08002"),
651    ERR_08003("ERR_08003"),
652    ERR_08004("ERR_08004"),
653    ERR_08005("ERR_08005"),
654    ERR_08006("ERR_08006"),
655
656    // ldap-schema
657    ERR_09001_DIRECTORY_CREATION_FAILED("ERR_09001_DIRECTORY_CREATION_FAILED"),
658
659    // ldap-schema-loader
660    ERR_10001("ERR_10001"),
661    ERR_10002("ERR_10002"),
662    ERR_10003("ERR_10003"),
663    ERR_10004("ERR_10004"),
664    ERR_10005("ERR_10005"),
665    ERR_10006("ERR_10006"),
666    ERR_10007("ERR_10007"),
667    ERR_10008("ERR_10008"),
668    ERR_10009("ERR_10009"),
669    ERR_10010("ERR_10010"),
670    ERR_10011("ERR_10011"),
671    ERR_10012("ERR_10012"),
672    ERR_10013("ERR_10013"),
673    ERR_10014("ERR_10014"),
674    ERR_10015("ERR_10015"),
675    ERR_10016("ERR_10016"),
676    ERR_10017("ERR_10017"),
677    ERR_10018("ERR_10018"),
678    ERR_10019("ERR_10019"),
679    ERR_10020("ERR_10020"),
680    ERR_10021("ERR_10021"),
681    ERR_10022("ERR_10022"),
682    ERR_10023("ERR_10023"),
683    ERR_10024("ERR_10024"),
684    ERR_10025("ERR_10025"),
685    ERR_10026("ERR_10026"),
686    ERR_10027("ERR_10027"),
687    ERR_10028("ERR_10028"),
688
689    // ldap-schema-manager
690    ERR_11001("ERR_11001"),
691    ERR_11002("ERR_11002"),
692    ERR_11003("ERR_11003"),
693    ERR_11004("ERR_11004"),
694    ERR_11005("ERR_11005"),
695    ERR_11006("ERR_11006"),
696    ERR_11007("ERR_11007"),
697    ERR_11008("ERR_11008"),
698    ERR_11009("ERR_11009"),
699    ERR_11010("ERR_11010"),
700    ERR_11011("ERR_11011"),
701    ERR_11012("ERR_11012"),
702    ERR_11013("ERR_11013"),
703
704    // ldap-schema-manager
705    ERR_12001_UNKNOWN_CHANGE_TYPE("ERR_12001_UNKNOWN_CHANGE_TYPE"),
706    ERR_12002_ENTRY_WITH_TWO_DNS("ERR_12002_ENTRY_WITH_TWO_DNS"),
707    ERR_12003_LDIF_ENTRY_WITH_TWO_DNS("ERR_12003_LDIF_ENTRY_WITH_TWO_DNS"),
708    ERR_12004_CHANGE_NOT_ALLOWED("ERR_12004_CHANGE_NOT_ALLOWED"),
709    ERR_12005_NO_CHANGE("ERR_12005_NO_CHANGE"),
710    ERR_12006_EXPECTING_ATTRIBUTE_TYPE("ERR_12006_EXPECTING_ATTRIBUTE_TYPE"),
711    ERR_12007_BAD_ATTRIBUTE("ERR_12007_BAD_ATTRIBUTE"),
712    ERR_12008_CANNOT_PARSE_LDIF_BUFFER("ERR_12008_CANNOT_PARSE_LDIF_BUFFER"),
713    ERR_12009_ERROR_PARSING_LDIF_BUFFER("ERR_12009_ERROR_PARSING_LDIF_BUFFER"),
714    ERR_12010_CANNOT_FIND_FILE("ERR_12010_CANNOT_FIND_FILE"),
715    ERR_12011_CANNOT_READ_FILE("ERR_12011_CANNOT_READ_FILE"),
716    ERR_12012_EMPTY_DN_NOT_ALLOWED("ERR_12012_EMPTY_DN_NOT_ALLOWED"),
717    ERR_12013_NO_DN("ERR_12013_NO_DN"),
718    ERR_12014_BASE64_DN_EXPECTED("ERR_12014_BASE64_DN_EXPECTED"),
719    ERR_12015_INVALID_BASE64_DN("ERR_12015_INVALID_BASE64_DN"),
720    ERR_12016_DN_EXPECTED("ERR_12016_DN_EXPECTED"),
721    ERR_12017_INVALID_DN("ERR_12017_INVALID_DN"),
722    ERR_12018_FILE_NOT_FOUND("ERR_12018_FILE_NOT_FOUND"),
723    ERR_12019_BAD_URL_FILE_NOT_FOUND("ERR_12019_BAD_URL_FILE_NOT_FOUND"),
724    ERR_12020_FILE_TOO_BIG("ERR_12020_FILE_TOO_BIG"),
725    ERR_12022_ERROR_READING_FILE("ERR_12022_ERROR_READING_FILE"),
726    ERR_12023_ERROR_READING_BAD_URL("ERR_12023_ERROR_READING_BAD_URL"),
727    ERR_12024_CANNOT_CLOSE_FILE("ERR_12024_CANNOT_CLOSE_FILE"),
728    ERR_12025_BAD_PROTOCOL("ERR_12025_BAD_PROTOCOL"),
729    ERR_12026_UNSUPPORTED_PROTOCOL("ERR_12026_UNSUPPORTED_PROTOCOL"),
730    ERR_12027_BAD_URL("ERR_12027_BAD_URL"),
731    ERR_12029_CONTROL_WITHOUT_OID("ERR_12029_CONTROL_WITHOUT_OID"),
732    ERR_12031_INVALID_OID("ERR_12031_INVALID_OID"),
733    ERR_12033_INVALID_CRITICALITY("ERR_12033_INVALID_CRITICALITY"),
734    ERR_12035_BAD_MODRDN_OPERATION("ERR_12035_BAD_MODRDN_OPERATION"),
735    ERR_12038_NO_DELETEOLDRDN("ERR_12038_NO_DELETEOLDRDN"),
736    ERR_12040_BAD_MODIFY_SEPARATOR("ERR_12040_BAD_MODIFY_SEPARATOR"),
737    ERR_12042_BAD_MODIFY_SEPARATOR_2("ERR_12042_BAD_MODIFY_SEPARATOR_2"),
738    ERR_12044("ERR_12044"),
739    ERR_12045("ERR_12045"),
740    ERR_12046("ERR_12046"),
741    ERR_12047("ERR_12047"),
742    ERR_12048("ERR_12048"),
743    ERR_12049("ERR_12049"),
744    ERR_12050("ERR_12050"),
745    ERR_12051("ERR_12051"),
746    ERR_12052("ERR_12052"),
747    ERR_12053("ERR_12053"),
748    ERR_12054("ERR_12054"),
749    ERR_12055("ERR_12055"),
750    ERR_12056("ERR_12056"),
751    ERR_12057_BAD_ATTRIBUTE("ERR_12057_BAD_ATTRIBUTE"),
752    ERR_12058_UNKNOWN_ENTRY_TYPE("ERR_12058_UNKNOWN_ENTRY_TYPE"),
753    ERR_12059_UNKNOWN_ENTRY("ERR_12059_UNKNOWN_ENTRY"),
754    ERR_12060_VERSION_NOT_A_NUMBER("ERR_12060_VERSION_NOT_A_NUMBER"),
755    ERR_12061_LDIF_PARSING_ERROR("ERR_12061_LDIF_PARSING_ERROR"),
756    ERR_12062_EMPTY_CONTINUATION_LINE("ERR_12062_EMPTY_CONTINUATION_LINE"),
757    ERR_12063_ERROR_WHILE_READING_LDIF_LINE("ERR_12063_ERROR_WHILE_READING_LDIF_LINE"),
758    ERR_12064_EMPTY_FILE_NAME("ERR_12064_EMPTY_FILE_NAME"),
759    ERR_12066("ERR_12066"),
760    ERR_12067("ERR_12067"),
761    ERR_12068("ERR_12068"),
762    ERR_12069("ERR_12069"),
763    ERR_12070("ERR_12070"),
764    ERR_12071("ERR_12071"),
765    ERR_12072("ERR_12072"),
766    ERR_12073("ERR_12073"),
767    ERR_12074("ERR_12074"),
768    ERR_12075("ERR_12075"),
769    ERR_12076("ERR_12076"),
770    ERR_12077("ERR_12077"),
771    ERR_12078("ERR_12078"),
772    ERR_12079("ERR_12079"),
773    ERR_12080("ERR_12080"),
774    ERR_12081("ERR_12081"),
775    ERR_12082("ERR_12082"),
776    ERR_12083("ERR_12083"),
777    ERR_12084("ERR_12084"),
778    ERR_12085("ERR_12085"),
779    ERR_12086("ERR_12086"),
780    ERR_12087("ERR_12087"),
781
782    // The messages
783    MSG_04489_SYNTAX_VALID( "MSG_04489_SYNTAX_VALID" );
784    
785    /** The error code */
786    private String errorCode;
787
788    /** The file containing the errors */
789    private static final ResourceBundle ERR_BUNDLE = ResourceBundle
790        .getBundle( "org/apache/directory/api/i18n/errors", Locale.ROOT );
791
792    /** The file containing the messages */
793    private static final ResourceBundle MSG_BUNDLE = ResourceBundle
794        .getBundle( "org/apache/directory/api/i18n/messages", Locale.ROOT );
795
796    /**
797     * Creates a new instance of I18n.
798     * 
799     * @param errorCode the error code
800     */
801    I18n( String errorCode )
802    {
803        this.errorCode = errorCode;
804    }
805
806
807    /**
808     * Getter for the field <code>errorCode</code>.
809     *
810     * @return the errorCode
811     * @since 0.9.20
812     */
813    public String getErrorCode()
814    {
815        return errorCode;
816    }
817
818
819    /**
820     *
821     * Translate an error code with argument(s)
822     *
823     * @param err The error code
824     * @param args The argument(s)
825     * @return The translated error
826     */
827    public static String err( I18n err, Object... args )
828    {
829        try
830        {
831            return err + " " + format( ERR_BUNDLE.getString( err.getErrorCode() ), args );
832        }
833        catch ( Exception e )
834        {
835            StringBuilder sb = new StringBuilder();
836            boolean comma = false;
837
838            for ( Object obj : args )
839            {
840                if ( comma )
841                {
842                    sb.append( "," );
843                }
844                else
845                {
846                    comma = true;
847                }
848
849                sb.append( obj );
850            }
851            return err + " (" + sb.toString() + ")";
852        }
853    }
854
855
856    /**
857     *
858     * Translate a message code with argument(s)
859     *
860     * @param msg The message code
861     * @param args The argument(s)
862     * @return The translated error
863     */
864    public static String msg( I18n msg, Object... args )
865    {
866        try
867        {
868            return msg + " " + format( ERR_BUNDLE.getString( msg.getErrorCode() ), args );
869        }
870        catch ( Exception e )
871        {
872            StringBuilder sb = new StringBuilder();
873            boolean comma = false;
874
875            for ( Object obj : args )
876            {
877                if ( comma )
878                {
879                    sb.append( "," );
880                }
881                else
882                {
883                    comma = true;
884                }
885
886                sb.append( obj );
887            }
888            return msg + " (" + sb.toString() + ")";
889        }
890    }
891
892
893    /**
894     *
895     * Translate a message with argument(s)
896     *
897     * @param msg The message
898     * @param args The argument(s)
899     * @return The translated error
900     */
901    public static String msg( String msg, Object... args )
902    {
903        try
904        {
905            return format( MSG_BUNDLE.getString( msg ), args );
906        }
907        catch ( MissingResourceException mre )
908        {
909            try
910            {
911                return format( msg, args );
912            }
913            catch ( Exception e )
914            {
915                StringBuilder sb = new StringBuilder();
916                boolean comma = false;
917
918                for ( Object obj : args )
919                {
920                    if ( comma )
921                    {
922                        sb.append( "," );
923                    }
924                    else
925                    {
926                        comma = true;
927                    }
928
929                    sb.append( obj );
930                }
931
932                return msg + " (" + sb.toString() + ")";
933            }
934        }
935    }
936
937    /**
938     * Format a message injecting some parameters in the pattern.
939     * 
940     * @param pattern The message pattern
941     * @param args The arguments to inject in the pattern
942     * @return The resulting messages
943     */
944    public static String format( String pattern, Object... args )
945    {
946        return new MessageFormat( pattern, Locale.ROOT ).format( args );
947    }
948}