001/*
002 * The contents of this file are subject to the terms of the Common Development and
003 * Distribution License (the License). You may not use this file except in compliance with the
004 * License.
005 *
006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
007 * specific language governing permission and limitations under the License.
008 *
009 * When distributing Covered Software, include this CDDL Header Notice in each file and include
010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
011 * Header, with the fields enclosed by brackets [] replaced by your own identifying
012 * information: "Portions Copyright [year] [name of copyright owner]".
013 *
014 * Copyright 2006-2008 Sun Microsystems, Inc.
015 * Portions Copyright 2014 ForgeRock AS.
016 */
017package org.opends.server.protocols.ldap;
018import org.forgerock.i18n.LocalizableMessage;
019
020
021
022import static org.opends.messages.CoreMessages.*;
023/**
024 * This class defines a set of constants that correspond to the result codes
025 * defined in the LDAP protocol.  Note that many (but not all) of the result
026 * codes numbered 81 and higher come from the LDAP C API specification and are
027 * only intended for client-side use and should not be returned from the
028 * Directory Server.  These are denoted with a "CLIENT_SIDE_" prefix.
029 */
030public class LDAPResultCode
031{
032  /**
033   * The LDAP result code for successful operations.
034   */
035  public static final int SUCCESS = 0;
036
037
038
039  /**
040   * The LDAP result code for operations that fail due to an operations error.
041   */
042  public static final int OPERATIONS_ERROR = 1;
043
044
045
046  /**
047   * The LDAP result code for operations that fail due to a protocol error.
048   */
049  public static final int PROTOCOL_ERROR = 2;
050
051
052
053  /**
054   * The LDAP result code for operations that fail as a result of exceeding a
055   * time limit.
056   */
057  public static final int TIME_LIMIT_EXCEEDED = 3;
058
059
060
061  /**
062   * The LDAP result code for operations that fail as a result of exceeding a
063   * size limit.
064   */
065  public static final int SIZE_LIMIT_EXCEEDED = 4;
066
067
068
069  /**
070   * The LDAP result code for compare operations in which the assertion is
071   * false.
072   */
073  public static final int COMPARE_FALSE = 5;
074
075
076
077  /**
078   * The LDAP result code for compare operations in which the assertion is true.
079   */
080  public static final int COMPARE_TRUE = 6;
081
082
083
084  /**
085   * The LDAP result code for operations that fail because the requested
086   * authentication method is not supported.
087   */
088  public static final int AUTH_METHOD_NOT_SUPPORTED = 7;
089
090
091
092  /**
093   * The LDAP result code for operations that fail because strong authentication
094   * is required.
095   */
096  public static final int STRONG_AUTH_REQUIRED = 8;
097
098
099
100  /**
101   * The LDAP result code for operations that encountered a referral.
102   */
103  public static final int REFERRAL = 10;
104
105
106
107  /**
108   * The LDAP result code for operations that fail as a result of exceeding an
109   * administrative limit.
110   */
111  public static final int ADMIN_LIMIT_EXCEEDED = 11;
112
113
114
115  /**
116   * The LDAP result code for operations that fail because they contain an
117   * unavailable critical extension.
118   */
119  public static final int UNAVAILABLE_CRITICAL_EXTENSION = 12;
120
121
122
123  /**
124   * The LDAP result code for operations that fail because confidentiality is
125   * required.
126   */
127  public static final int CONFIDENTIALITY_REQUIRED = 13;
128
129
130
131  /**
132   * The LDAP result code used for multi-stage SASL bind operations that are not
133   * yet complete.
134   */
135  public static final int SASL_BIND_IN_PROGRESS = 14;
136
137
138
139  /**
140   * The LDAP result code for operations that fail because a specified attribute
141   * does not exist.
142   */
143  public static final int NO_SUCH_ATTRIBUTE = 16;
144
145
146
147  /**
148   * The LDAP result code for operations that fail because a specified attribute
149   * type is not defined in the server schema.
150   */
151  public static final int UNDEFINED_ATTRIBUTE_TYPE = 17;
152
153
154
155  /**
156   * The LDAP result code for operations that fail as a result of attempting an
157   * inappropriate form of matching on an attribute.
158   */
159  public static final int INAPPROPRIATE_MATCHING = 18;
160
161
162
163  /**
164   * The LDAP result code for operations that fail because a defined constraint
165   * has been violated.
166   */
167  public static final int CONSTRAINT_VIOLATION = 19;
168
169
170
171  /**
172   * The LDAP result code for operations that fail because of a conflict with an
173   * existing attribute or value.
174   */
175  public static final int ATTRIBUTE_OR_VALUE_EXISTS = 20;
176
177
178
179  /**
180   * The LDAP result code for operations that fail because of an invalid
181   * attribute syntax.
182   */
183  public static final int INVALID_ATTRIBUTE_SYNTAX = 21;
184
185
186
187  /**
188   * The LDAP result code for operations that fail because a targeted entry does
189   * not exist.
190   */
191  public static final int NO_SUCH_OBJECT = 32;
192
193
194
195  /**
196   * The LDAP result code for operations that fail because the an alias was
197   * encountered in an illegal context.
198   */
199  public static final int ALIAS_PROBLEM = 33;
200
201
202
203  /**
204   * The LDAP result code for operations that fail because the request included
205   * a malformed DN.
206   */
207  public static final int INVALID_DN_SYNTAX = 34;
208
209
210
211  /**
212   * The LDAP result code for operations that fail because a problem occurred
213   * while attempting to dereference an alias.
214   */
215  public static final int ALIAS_DEREFERENCING_PROBLEM = 36;
216
217
218
219  /**
220   * The LDAP result code for operations that fail because the user attempted to
221   * perform a type of authentication that was inappropriate for the targeted
222   * entry.
223   */
224  public static final int INAPPROPRIATE_AUTHENTICATION = 48;
225
226
227
228  /**
229   * The LDAP result code for operations that fail because the user supplied
230   * invalid credentials for an authentication attempt.
231   */
232  public static final int INVALID_CREDENTIALS = 49;
233
234
235
236  /**
237   * The LDAP result code for operations that fail because the client does not
238   * have permission to perform the requested operation.
239   */
240  public static final int INSUFFICIENT_ACCESS_RIGHTS = 50;
241
242
243
244  /**
245   * The LDAP result code for operations that fail because the server was too
246   * busy to process it.
247   */
248  public static final int BUSY = 51;
249
250
251
252  /**
253   * The LDAP result code for operations that fail because the server or a
254   * required resource was unavailable.
255   */
256  public static final int UNAVAILABLE = 52;
257
258
259
260  /**
261   * The LDAP result code for operations that fail because the server was
262   * unwilling to perform the requested operation.
263   */
264  public static final int UNWILLING_TO_PERFORM = 53;
265
266
267
268  /**
269   * The LDAP result code for operations that fail because a referral or
270   * chaining loop was detected.
271   */
272  public static final int LOOP_DETECT = 54;
273
274
275
276  /**
277   * The LDAP result code for operations that fail because the request included
278   * a VLV request control without a server-side sort control.
279   */
280  public static final int SORT_CONTROL_MISSING = 60;
281
282
283
284  /**
285   * The LDAP result code for operations that fail because the request included
286   * a VLV request control with an invalid offset.
287   */
288  public static final int OFFSET_RANGE_ERROR = 61;
289
290
291
292  /**
293   * The LDAP result code for operations that fail due to a naming violation.
294   */
295  public static final int NAMING_VIOLATION = 64;
296
297
298
299  /**
300   * The LDAP result code for operations that fail because the requested
301   * operation would have resulted in an entry that violates the server schema.
302   */
303  public static final int OBJECTCLASS_VIOLATION = 65;
304
305
306
307  /**
308   * The LDAP result code for operations that fail because the requested
309   * operation is not allowed on non-leaf entries.
310   */
311  public static final int NOT_ALLOWED_ON_NONLEAF = 66;
312
313
314
315  /**
316   * The LDAP result code for operations that fail because the requested
317   * operation is not allowed on an RDN attribute.
318   */
319  public static final int NOT_ALLOWED_ON_RDN = 67;
320
321
322
323  /**
324   * The LDAP result code for operations that fail because the requested
325   * operation would have resulted in an entry that conflicts with one that
326   * already exists.
327   */
328  public static final int ENTRY_ALREADY_EXISTS = 68;
329
330
331
332  /**
333   * The LDAP result code for operations that fail because the requested
334   * operation attempted to modify objectclass values in an illegal manner.
335   */
336  public static final int OBJECTCLASS_MODS_PROHIBITED = 69;
337
338
339
340  /**
341   * The LDAP result code for operations that fail because the requested
342   * operation would have required interaction with multiple DSAs.
343   */
344  public static final int AFFECTS_MULTIPLE_DSAS = 71;
345
346
347
348  /**
349   * The LDAP result code for operations that fail due to an error in
350   * virtual list view processing.
351   */
352  public static final int VIRTUAL_LIST_VIEW_ERROR = 76;
353
354
355
356  /**
357   * The LDAP result code for use in cases in which none of the other defined
358   * result codes are appropriate.
359   */
360  public static final int OTHER = 80;
361
362
363
364  /**
365   * The client-side result code that indicates that a previously-established
366   * connection to the server was lost.  This is for client-side use only and
367   * should never be transferred over protocol.
368   */
369  public static final int CLIENT_SIDE_SERVER_DOWN = 81;
370
371
372
373  /**
374   * The client-side result code that indicates that a local error occurred that
375   * had nothing to do with interaction with the server.  This is for
376   * client-side use only and should never be transferred over protocol.
377   */
378  public static final int CLIENT_SIDE_LOCAL_ERROR = 82;
379
380
381
382  /**
383   * The client-side result code that indicates that an error occurred while
384   * encoding a request to send to the server.  This is for client-side use only
385   * and should never be transferred over protocol.
386   */
387  public static final int CLIENT_SIDE_ENCODING_ERROR = 83;
388
389
390
391  /**
392   * The client-side result code that indicates that an error occurred while
393   * decoding a response from the server.  This is for client-side use only and
394   * should never be transferred over protocol.
395   */
396  public static final int CLIENT_SIDE_DECODING_ERROR = 84;
397
398
399
400  /**
401   * The client-side result code that indicates that the client did not receive
402   * an expected response in a timely manner.  This is for client-side use only
403   * and should never be transferred over protocol.
404   */
405  public static final int CLIENT_SIDE_TIMEOUT = 85;
406
407
408
409  /**
410   * The client-side result code that indicates that the user requested an
411   * unknown or unsupported authentication mechanism.  This is for client-side
412   * use only and should never be transferred over protocol.
413   */
414  public static final int CLIENT_SIDE_AUTH_UNKNOWN = 86;
415
416
417
418  /**
419   * The client-side result code that indicates that the filter provided by the
420   * user was malformed and could not be parsed.  This is for client-side use
421   * only and should never be transferred over protocol.
422   */
423  public static final int CLIENT_SIDE_FILTER_ERROR = 87;
424
425
426
427  /**
428   * The client-side result code that indicates that the user cancelled an
429   * operation.  This is for client-side use only and should never be
430   * transferred over protocol.
431   */
432  public static final int CLIENT_SIDE_USER_CANCELLED = 88;
433
434
435
436  /**
437   * The client-side result code that indicates that there was a problem with
438   * one or more of the parameters provided by the user.  This is for
439   * client-side use only and should never be transferred over protocol.
440   */
441  public static final int CLIENT_SIDE_PARAM_ERROR = 89;
442
443
444
445  /**
446   * The client-side result code that indicates that the client application was
447   * not able to allocate enough memory for the requested operation.  This is
448   * for client-side use only and should never be transferred over protocol.
449   */
450  public static final int CLIENT_SIDE_NO_MEMORY = 90;
451
452
453
454  /**
455   * The client-side result code that indicates that the client was not able to
456   * establish a connection to the server.  This is for client-side use only and
457   * should never be transferred over protocol.
458   */
459  public static final int CLIENT_SIDE_CONNECT_ERROR = 91;
460
461
462
463  /**
464   * The client-side result code that indicates that the user requested an
465   * operation that is not supported.  This is for client-side use only and
466   * should never be transferred over protocol.
467   */
468  public static final int CLIENT_SIDE_NOT_SUPPORTED = 92;
469
470
471
472  /**
473   * The client-side result code that indicates that the client expected a
474   * control to be present in the response from the server but it was not
475   * included.  This is for client-side use only and should never be transferred
476   * over protocol.
477   */
478  public static final int CLIENT_SIDE_CONTROL_NOT_FOUND = 93;
479
480
481
482  /**
483   * The client-side result code that indicates that the server did not return
484   * any results for a search operation that was expected to match at least one
485   * entry.  This is for client-side use only and should never be transferred
486   * over protocol.
487   */
488  public static final int CLIENT_SIDE_NO_RESULTS_RETURNED = 94;
489
490
491
492  /**
493   * The client-side result code that indicates that the server has returned
494   * more matching entries for a search operation than have been processed so
495   * far.  This is for client-side use only and should never be transferred over
496   * protocol.
497   */
498  public static final int CLIENT_SIDE_MORE_RESULTS_TO_RETURN = 95;
499
500
501
502  /**
503   * The client-side result code that indicates that the client detected a
504   * referral loop caused by servers referencing each other in a circular
505   * manner.  This is for client-side use only and should never be transferred
506   * over protocol.
507   */
508  public static final int CLIENT_SIDE_CLIENT_LOOP = 96;
509
510
511
512  /**
513   * The client-side result code that indicates that the client reached the
514   * maximum number of hops allowed when attempting to follow a referral (i.e.,
515   * following one referral resulted in another referral which resulted in
516   * another referral and so on).  This is for client-side use only and should
517   * never be transferred over protocol.
518   */
519  public static final int CLIENT_SIDE_REFERRAL_LIMIT_EXCEEDED = 97;
520
521
522
523  /**
524   * The LDAP result code for cancel operations that are successful, or for
525   * operations that are canceled.
526   */
527  public static final int CANCELED = 118;
528
529
530
531  /**
532   * The LDAP result code for cancel operations that fail because the specified
533   * operation could not be found.
534   */
535  public static final int NO_SUCH_OPERATION = 119;
536
537
538
539  /**
540   * The LDAP result code for cancel operations that fail because the specified
541   * operation has already progressed too far to be canceled.
542   */
543  public static final int TOO_LATE = 120;
544
545
546
547  /**
548   * The LDAP result code for cancel operations that fail because the specified
549   * operation cannot be canceled.
550   */
551  public static final int CANNOT_CANCEL = 121;
552
553
554
555  /**
556   * The LDAP result code for operations that are rejected because the
557   * filter in the LDAP assertion control did not match the target entry.
558   */
559  public static final int ASSERTION_FAILED = 122;
560
561
562
563  /**
564   * The LDAP result code for operations that fail because the server refused
565   * the client's requested authorization.
566   */
567  public static final int AUTHORIZATION_DENIED = 123;
568
569
570
571  /**
572   * The LDAP result code for operations in which no action is taken because the
573   * request include the LDAP no-op control.
574   *
575   * FIXME -- This is a temporary result code for use until
576   *          draft-zeilenga-ldap-noop is updated and an official result code is
577   *          allocated for it.  In the meantime, this result appears to be the
578   *          one used by OpenLDAP as per the message at
579   *          http://www.openldap.org/lists/openldap-devel/200601/msg00143.html
580   *          (0x410e = 16654).
581   */
582  public static final int NO_OPERATION = 16654;
583
584
585
586  /**
587   * Retrieves a string representation of the provided LDAP result code.
588   *
589   * @param  resultCode  The LDAP result code value for which to obtain the
590   *                     string representation.
591   *
592   * @return  The string representation of the provided LDAP result code.
593   */
594  public static String toString(int resultCode)
595  {
596    LocalizableMessage message;
597
598    switch (resultCode)
599    {
600      case SUCCESS:
601        message = INFO_RESULT_SUCCESS.get();
602        break;
603      case OPERATIONS_ERROR:
604        message = INFO_RESULT_OPERATIONS_ERROR.get();
605        break;
606      case PROTOCOL_ERROR:
607        message = INFO_RESULT_PROTOCOL_ERROR.get();
608        break;
609      case TIME_LIMIT_EXCEEDED:
610        message = INFO_RESULT_TIME_LIMIT_EXCEEDED.get();
611        break;
612      case SIZE_LIMIT_EXCEEDED:
613        message = INFO_RESULT_SIZE_LIMIT_EXCEEDED.get();
614        break;
615      case COMPARE_FALSE:
616        message = INFO_RESULT_COMPARE_FALSE.get();
617        break;
618      case COMPARE_TRUE:
619        message = INFO_RESULT_COMPARE_TRUE.get();
620        break;
621      case AUTH_METHOD_NOT_SUPPORTED:
622        message = INFO_RESULT_AUTH_METHOD_NOT_SUPPORTED.get();
623        break;
624      case STRONG_AUTH_REQUIRED:
625        message = INFO_RESULT_STRONG_AUTH_REQUIRED.get();
626        break;
627      case REFERRAL:
628        message = INFO_RESULT_REFERRAL.get();
629        break;
630      case ADMIN_LIMIT_EXCEEDED:
631        message = INFO_RESULT_ADMIN_LIMIT_EXCEEDED.get();
632        break;
633      case UNAVAILABLE_CRITICAL_EXTENSION:
634        message = INFO_RESULT_UNAVAILABLE_CRITICAL_EXTENSION.get();
635        break;
636      case CONFIDENTIALITY_REQUIRED:
637        message = INFO_RESULT_CONFIDENTIALITY_REQUIRED.get();
638        break;
639      case SASL_BIND_IN_PROGRESS:
640        message = INFO_RESULT_SASL_BIND_IN_PROGRESS.get();
641        break;
642      case NO_SUCH_ATTRIBUTE:
643        message = INFO_RESULT_NO_SUCH_ATTRIBUTE.get();
644        break;
645      case UNDEFINED_ATTRIBUTE_TYPE:
646        message = INFO_RESULT_UNDEFINED_ATTRIBUTE_TYPE.get();
647        break;
648      case INAPPROPRIATE_MATCHING:
649        message = INFO_RESULT_INAPPROPRIATE_MATCHING.get();
650        break;
651      case CONSTRAINT_VIOLATION:
652        message = INFO_RESULT_CONSTRAINT_VIOLATION.get();
653        break;
654      case ATTRIBUTE_OR_VALUE_EXISTS:
655        message = INFO_RESULT_ATTRIBUTE_OR_VALUE_EXISTS.get();
656        break;
657      case INVALID_ATTRIBUTE_SYNTAX:
658        message = INFO_RESULT_INVALID_ATTRIBUTE_SYNTAX.get();
659        break;
660      case NO_SUCH_OBJECT:
661        message = INFO_RESULT_NO_SUCH_OBJECT.get();
662        break;
663      case ALIAS_PROBLEM:
664        message = INFO_RESULT_ALIAS_PROBLEM.get();
665        break;
666      case INVALID_DN_SYNTAX:
667        message = INFO_RESULT_INVALID_DN_SYNTAX.get();
668        break;
669      case ALIAS_DEREFERENCING_PROBLEM:
670        message = INFO_RESULT_ALIAS_DEREFERENCING_PROBLEM.get();
671        break;
672      case INAPPROPRIATE_AUTHENTICATION:
673        message = INFO_RESULT_INAPPROPRIATE_AUTHENTICATION.get();
674        break;
675      case INVALID_CREDENTIALS:
676        message = INFO_RESULT_INVALID_CREDENTIALS.get();
677        break;
678      case INSUFFICIENT_ACCESS_RIGHTS:
679        message = INFO_RESULT_INSUFFICIENT_ACCESS_RIGHTS.get();
680        break;
681      case BUSY:
682        message = INFO_RESULT_BUSY.get();
683        break;
684      case UNAVAILABLE:
685        message = INFO_RESULT_UNAVAILABLE.get();
686        break;
687      case UNWILLING_TO_PERFORM:
688        message = INFO_RESULT_UNWILLING_TO_PERFORM.get();
689        break;
690      case LOOP_DETECT:
691        message = INFO_RESULT_LOOP_DETECT.get();
692        break;
693      case SORT_CONTROL_MISSING:
694        message = INFO_RESULT_SORT_CONTROL_MISSING.get();
695        break;
696      case OFFSET_RANGE_ERROR:
697        message = INFO_RESULT_OFFSET_RANGE_ERROR.get();
698        break;
699      case NAMING_VIOLATION:
700        message = INFO_RESULT_NAMING_VIOLATION.get();
701        break;
702      case OBJECTCLASS_VIOLATION:
703        message = INFO_RESULT_OBJECTCLASS_VIOLATION.get();
704        break;
705      case NOT_ALLOWED_ON_NONLEAF:
706        message = INFO_RESULT_NOT_ALLOWED_ON_NONLEAF.get();
707        break;
708      case NOT_ALLOWED_ON_RDN:
709        message = INFO_RESULT_NOT_ALLOWED_ON_RDN.get();
710        break;
711      case ENTRY_ALREADY_EXISTS:
712        message = INFO_RESULT_ENTRY_ALREADY_EXISTS.get();
713        break;
714      case OBJECTCLASS_MODS_PROHIBITED:
715        message = INFO_RESULT_OBJECTCLASS_MODS_PROHIBITED.get();
716        break;
717      case AFFECTS_MULTIPLE_DSAS:
718        message = INFO_RESULT_AFFECTS_MULTIPLE_DSAS.get();
719        break;
720      case VIRTUAL_LIST_VIEW_ERROR:
721        message = INFO_RESULT_VIRTUAL_LIST_VIEW_ERROR.get();
722        break;
723      case CLIENT_SIDE_SERVER_DOWN:
724        message = INFO_RESULT_CLIENT_SIDE_SERVER_DOWN.get();
725        break;
726      case CLIENT_SIDE_LOCAL_ERROR:
727        message = INFO_RESULT_CLIENT_SIDE_LOCAL_ERROR.get();
728        break;
729      case CLIENT_SIDE_ENCODING_ERROR:
730        message = INFO_RESULT_CLIENT_SIDE_ENCODING_ERROR.get();
731        break;
732      case CLIENT_SIDE_DECODING_ERROR:
733        message = INFO_RESULT_CLIENT_SIDE_DECODING_ERROR.get();
734        break;
735      case CLIENT_SIDE_TIMEOUT:
736        message = INFO_RESULT_CLIENT_SIDE_TIMEOUT.get();
737        break;
738      case CLIENT_SIDE_AUTH_UNKNOWN:
739        message = INFO_RESULT_CLIENT_SIDE_AUTH_UNKNOWN.get();
740        break;
741      case CLIENT_SIDE_FILTER_ERROR:
742        message = INFO_RESULT_CLIENT_SIDE_FILTER_ERROR.get();
743        break;
744      case CLIENT_SIDE_USER_CANCELLED:
745        message = INFO_RESULT_CLIENT_SIDE_USER_CANCELLED.get();
746        break;
747      case CLIENT_SIDE_PARAM_ERROR:
748        message = INFO_RESULT_CLIENT_SIDE_PARAM_ERROR.get();
749        break;
750      case CLIENT_SIDE_NO_MEMORY:
751        message = INFO_RESULT_CLIENT_SIDE_NO_MEMORY.get();
752        break;
753      case CLIENT_SIDE_CONNECT_ERROR:
754        message = INFO_RESULT_CLIENT_SIDE_CONNECT_ERROR.get();
755        break;
756      case CLIENT_SIDE_NOT_SUPPORTED:
757        message = INFO_RESULT_CLIENT_SIDE_NOT_SUPPORTED.get();
758        break;
759      case CLIENT_SIDE_CONTROL_NOT_FOUND:
760        message = INFO_RESULT_CLIENT_SIDE_CONTROL_NOT_FOUND.get();
761        break;
762      case CLIENT_SIDE_NO_RESULTS_RETURNED:
763        message = INFO_RESULT_CLIENT_SIDE_NO_RESULTS_RETURNED.get();
764        break;
765      case CLIENT_SIDE_MORE_RESULTS_TO_RETURN:
766        message = INFO_RESULT_CLIENT_SIDE_MORE_RESULTS_TO_RETURN.get();
767        break;
768      case CLIENT_SIDE_CLIENT_LOOP:
769        message = INFO_RESULT_CLIENT_SIDE_CLIENT_LOOP.get();
770        break;
771      case CLIENT_SIDE_REFERRAL_LIMIT_EXCEEDED:
772        message = INFO_RESULT_CLIENT_SIDE_REFERRAL_LIMIT_EXCEEDED.get();
773        break;
774      case CANCELED:
775        message = INFO_RESULT_CANCELED.get();
776        break;
777      case NO_SUCH_OPERATION:
778        message = INFO_RESULT_NO_SUCH_OPERATION.get();
779        break;
780      case TOO_LATE:
781        message = INFO_RESULT_TOO_LATE.get();
782        break;
783      case CANNOT_CANCEL:
784        message = INFO_RESULT_CANNOT_CANCEL.get();
785        break;
786      case ASSERTION_FAILED:
787        message = INFO_RESULT_ASSERTION_FAILED.get();
788        break;
789      case AUTHORIZATION_DENIED:
790        message = INFO_RESULT_AUTHORIZATION_DENIED.get();
791        break;
792      case NO_OPERATION:
793        message = INFO_RESULT_NO_OPERATION.get();
794        break;
795      default:
796        message = INFO_RESULT_OTHER.get();
797        break;
798    }
799
800    return message.toString();
801  }
802}
803