001 /* 002 * CDDL HEADER START 003 * 004 * The contents of this file are subject to the terms of the 005 * Common Development and Distribution License, Version 1.0 only 006 * (the "License"). You may not use this file except in compliance 007 * with the License. 008 * 009 * You can obtain a copy of the license at 010 * trunk/opends/resource/legal-notices/OpenDS.LICENSE 011 * or https://OpenDS.dev.java.net/OpenDS.LICENSE. 012 * See the License for the specific language governing permissions 013 * and limitations under the License. 014 * 015 * When distributing Covered Code, include this CDDL HEADER in each 016 * file and include the License file at 017 * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, 018 * add the following below this CDDL HEADER, with the fields enclosed 019 * by brackets "[]" replaced with your own identifying information: 020 * Portions Copyright [yyyy] [name of copyright owner] 021 * 022 * CDDL HEADER END 023 * 024 * 025 * Copyright 2006-2008 Sun Microsystems, Inc. 026 */ 027 package org.opends.server.api.plugin; 028 029 030 031 import java.util.HashMap; 032 import java.util.HashSet; 033 import java.util.Map; 034 import java.util.Set; 035 036 037 038 /** 039 * This class defines an enumeration containing the types of plugins 040 * that are supported for use in the Directory Server. 041 */ 042 @org.opends.server.types.PublicAPI( 043 stability=org.opends.server.types.StabilityLevel.UNCOMMITTED, 044 mayInstantiate=false, 045 mayExtend=false, 046 mayInvoke=true) 047 public enum PluginType 048 { 049 /** 050 * The plugin type for plugins that are invoked when the Directory 051 * Server is starting up. 052 */ 053 STARTUP(PluginType.NAME_STARTUP), 054 055 056 057 /** 058 * The plugin type for plugins that are invoked when the Directory 059 * Server is performing a graceful shutdown. 060 */ 061 SHUTDOWN(PluginType.NAME_SHUTDOWN), 062 063 064 065 /** 066 * The plugin type for plugins that are to be invoked whenever a new 067 * client connection is established. 068 */ 069 POST_CONNECT(PluginType.NAME_POST_CONNECT), 070 071 072 073 /** 074 * The plugin type for plugins that are to be invoked whenever a 075 * client connection is closed. 076 */ 077 POST_DISCONNECT(PluginType.NAME_POST_DISCONNECT), 078 079 080 081 /** 082 * The plugin type for plugins that are to be invoked for each entry 083 * read during an LDIF import. 084 */ 085 LDIF_IMPORT(PluginType.NAME_LDIF_IMPORT), 086 087 088 089 /** 090 * The plugin type for plugins that are to be invoked for each entry 091 * written during an LDIF export. 092 */ 093 LDIF_EXPORT(PluginType.NAME_LDIF_EXPORT), 094 095 096 097 /** 098 * The plugin type for plugins that are to be invoked before 099 * processing begins on an abandon operation. 100 */ 101 PRE_PARSE_ABANDON(PluginType.NAME_PRE_PARSE_ABANDON), 102 103 104 105 /** 106 * The plugin type for plugins that are to be invoked before 107 * processing begins on an add operation. 108 */ 109 PRE_PARSE_ADD(PluginType.NAME_PRE_PARSE_ADD), 110 111 112 113 /** 114 * The plugin type for plugins that are to be invoked before 115 * processing begins on a bind operation. 116 */ 117 PRE_PARSE_BIND(PluginType.NAME_PRE_PARSE_BIND), 118 119 120 121 /** 122 * The plugin type for plugins that are to be invoked before 123 * processing begins on a compare operation. 124 */ 125 PRE_PARSE_COMPARE(PluginType.NAME_PRE_PARSE_COMPARE), 126 127 128 129 /** 130 * The plugin type for plugins that are to be invoked before 131 * processing begins on a delete operation. 132 */ 133 PRE_PARSE_DELETE(PluginType.NAME_PRE_PARSE_DELETE), 134 135 136 137 /** 138 * The plugin type for plugins that are to be invoked before 139 * processing begins on an extended operation. 140 */ 141 PRE_PARSE_EXTENDED(PluginType.NAME_PRE_PARSE_EXTENDED), 142 143 144 145 /** 146 * The plugin type for plugins that are to be invoked before 147 * processing begins on a modify operation. 148 */ 149 PRE_PARSE_MODIFY(PluginType.NAME_PRE_PARSE_MODIFY), 150 151 152 153 /** 154 * The plugin type for plugins that are to be invoked before 155 * processing begins on a modify DN operation. 156 */ 157 PRE_PARSE_MODIFY_DN(PluginType.NAME_PRE_PARSE_MODIFY_DN), 158 159 160 161 /** 162 * The plugin type for plugins that are to be invoked before 163 * processing begins on a search operation. 164 */ 165 PRE_PARSE_SEARCH(PluginType.NAME_PRE_PARSE_SEARCH), 166 167 168 169 /** 170 * The plugin type for plugins that are to be invoked before 171 * processing begins on an unbind operation. 172 */ 173 PRE_PARSE_UNBIND(PluginType.NAME_PRE_PARSE_UNBIND), 174 175 176 177 /** 178 * The plugin type for plugins that are to be invoked just before 179 * the core processing for an add operation. 180 */ 181 PRE_OPERATION_ADD(PluginType.NAME_PRE_OPERATION_ADD), 182 183 184 185 /** 186 * The plugin type for plugins that are to be invoked just before 187 * the core processing for a bind operation. 188 */ 189 PRE_OPERATION_BIND(PluginType.NAME_PRE_OPERATION_BIND), 190 191 192 193 /** 194 * The plugin type for plugins that are to be invoked just before 195 * the core processing for a compare operation. 196 */ 197 PRE_OPERATION_COMPARE(PluginType.NAME_PRE_OPERATION_COMPARE), 198 199 200 201 /** 202 * The plugin type for plugins that are to be invoked just before 203 * the core processing for a delete operation. 204 */ 205 PRE_OPERATION_DELETE(PluginType.NAME_PRE_OPERATION_DELETE), 206 207 208 209 /** 210 * The plugin type for plugins that are to be invoked just before 211 * the core processing for an extended operation. 212 */ 213 PRE_OPERATION_EXTENDED(PluginType.NAME_PRE_OPERATION_EXTENDED), 214 215 216 217 /** 218 * The plugin type for plugins that are to be invoked just before 219 * the core processing for a modify operation. 220 */ 221 PRE_OPERATION_MODIFY(PluginType.NAME_PRE_OPERATION_MODIFY), 222 223 224 225 /** 226 * The plugin type for plugins that are to be invoked just before 227 * the core processing for a modify DN operation. 228 */ 229 PRE_OPERATION_MODIFY_DN(PluginType.NAME_PRE_OPERATION_MODIFY_DN), 230 231 232 233 /** 234 * The plugin type for plugins that are to be invoked just before 235 * the core processing for a search operation. 236 */ 237 PRE_OPERATION_SEARCH(PluginType.NAME_PRE_OPERATION_SEARCH), 238 239 240 241 /** 242 * The plugin type for plugins that are to be invoked just after the 243 * core processing for an abandon operation. 244 */ 245 POST_OPERATION_ABANDON(PluginType.NAME_POST_OPERATION_ABANDON), 246 247 248 249 /** 250 * The plugin type for plugins that are to be invoked just after the 251 * core processing for an add operation. 252 */ 253 POST_OPERATION_ADD(PluginType.NAME_POST_OPERATION_ADD), 254 255 256 257 /** 258 * The plugin type for plugins that are to be invoked just after the 259 * core processing for a bind operation. 260 */ 261 POST_OPERATION_BIND(PluginType.NAME_POST_OPERATION_BIND), 262 263 264 265 /** 266 * The plugin type for plugins that are to be invoked just after the 267 * core processing for a compare operation. 268 */ 269 POST_OPERATION_COMPARE(PluginType.NAME_POST_OPERATION_COMPARE), 270 271 272 273 /** 274 * The plugin type for plugins that are to be invoked just after the 275 * core processing for a delete operation. 276 */ 277 POST_OPERATION_DELETE(PluginType.NAME_POST_OPERATION_DELETE), 278 279 280 281 /** 282 * The plugin type for plugins that are to be invoked just after the 283 * core processing for an extended operation. 284 */ 285 POST_OPERATION_EXTENDED(PluginType.NAME_POST_OPERATION_EXTENDED), 286 287 288 289 /** 290 * The plugin type for plugins that are to be invoked just after the 291 * core processing for a modify operation. 292 */ 293 POST_OPERATION_MODIFY(PluginType.NAME_POST_OPERATION_MODIFY), 294 295 296 297 /** 298 * The plugin type for plugins that are to be invoked just after the 299 * core processing for a modify DN operation. 300 */ 301 POST_OPERATION_MODIFY_DN(PluginType.NAME_POST_OPERATION_MODIFY_DN), 302 303 304 305 /** 306 * The plugin type for plugins that are to be invoked just after the 307 * core processing for a search operation. 308 */ 309 POST_OPERATION_SEARCH(PluginType.NAME_POST_OPERATION_SEARCH), 310 311 312 313 /** 314 * The plugin type for plugins that are to be invoked just after the 315 * core processing for an unbind operation. 316 */ 317 POST_OPERATION_UNBIND(PluginType.NAME_POST_OPERATION_UNBIND), 318 319 320 321 /** 322 * The plugin type for plugins that are to be invoked just after the 323 * response is sent for an add operation. 324 */ 325 POST_RESPONSE_ADD(PluginType.NAME_POST_RESPONSE_ADD), 326 327 328 329 /** 330 * The plugin type for plugins that are to be invoked just after the 331 * response is sent for a bind operation. 332 */ 333 POST_RESPONSE_BIND(PluginType.NAME_POST_RESPONSE_BIND), 334 335 336 337 /** 338 * The plugin type for plugins that are to be invoked just after the 339 * response is sent for a compare operation. 340 */ 341 POST_RESPONSE_COMPARE(PluginType.NAME_POST_RESPONSE_COMPARE), 342 343 344 345 /** 346 * The plugin type for plugins that are to be invoked just after the 347 * response is sent for a delete operation. 348 */ 349 POST_RESPONSE_DELETE(PluginType.NAME_POST_RESPONSE_DELETE), 350 351 352 353 /** 354 * The plugin type for plugins that are to be invoked just after the 355 * response is sent for an extended operation. 356 */ 357 POST_RESPONSE_EXTENDED(PluginType.NAME_POST_RESPONSE_EXTENDED), 358 359 360 361 /** 362 * The plugin type for plugins that are to be invoked just after the 363 * response is sent for a modify operation. 364 */ 365 POST_RESPONSE_MODIFY(PluginType.NAME_POST_RESPONSE_MODIFY), 366 367 368 369 /** 370 * The plugin type for plugins that are to be invoked just after the 371 * response is sent for a modify DN operation. 372 */ 373 POST_RESPONSE_MODIFY_DN(PluginType.NAME_POST_RESPONSE_MODIFY_DN), 374 375 376 377 /** 378 * The plugin type for plugins that are to be invoked just after the 379 * response is sent for a search operation. 380 */ 381 POST_RESPONSE_SEARCH(PluginType.NAME_POST_RESPONSE_SEARCH), 382 383 384 385 /** 386 * The plugin type for plugins that are to be invoked just after an 387 * add operation has been completed via synchronization. 388 */ 389 POST_SYNCHRONIZATION_ADD(PluginType.NAME_POST_SYNCHRONIZATION_ADD), 390 391 392 393 /** 394 * The plugin type for plugins that are to be invoked just after a 395 * delete operation has been completed via synchronization. 396 */ 397 POST_SYNCHRONIZATION_DELETE( 398 PluginType.NAME_POST_SYNCHRONIZATION_DELETE), 399 400 401 402 /** 403 * The plugin type for plugins that are to be invoked just after a 404 * modify operation has been completed via synchronization. 405 */ 406 POST_SYNCHRONIZATION_MODIFY( 407 PluginType.NAME_POST_SYNCHRONIZATION_MODIFY), 408 409 410 411 /** 412 * The plugin type for plugins that are to be invoked just after a 413 * modify DN operation has been completed via synchronization. 414 */ 415 POST_SYNCHRONIZATION_MODIFY_DN( 416 PluginType.NAME_POST_SYNCHRONIZATION_MODIFY_DN), 417 418 419 420 /** 421 * The plugin type for plugins that are to be invoked before each 422 * search result entry is sent to a client. 423 */ 424 SEARCH_RESULT_ENTRY(PluginType.NAME_SEARCH_ENTRY), 425 426 427 428 /** 429 * The plugin type for plugins that are to be invoked before each 430 * search result reference is sent to a client. 431 */ 432 SEARCH_RESULT_REFERENCE(PluginType.NAME_SEARCH_REFERENCE), 433 434 435 436 /** 437 * The plugin type for plugins that are to be invoked on each 438 * subordinate entry that is moved or renamed as part of a modify DN 439 * operation. 440 */ 441 SUBORDINATE_MODIFY_DN(PluginType.NAME_SUBORDINATE_MODIFY_DN), 442 443 444 445 /** 446 * The plugin type for plugins that are to be invoked before each 447 * intermediate response message is sent to a client. 448 */ 449 INTERMEDIATE_RESPONSE(PluginType.NAME_INTERMEDIATE_RESPONSE); 450 451 452 453 /** 454 * The name that will be used for startup plugins. 455 */ 456 private static final String NAME_STARTUP = "startup"; 457 458 459 460 /** 461 * The name that will be used for shutdown plugins. 462 */ 463 private static final String NAME_SHUTDOWN = "shutdown"; 464 465 466 467 /** 468 * The name that will be used for post-connect plugins. 469 */ 470 private static final String NAME_POST_CONNECT = "postconnect"; 471 472 473 474 /** 475 * The name that will be used for post-disconnect plugins. 476 */ 477 private static final String NAME_POST_DISCONNECT = "postdisconnect"; 478 479 480 481 /** 482 * The name that will be used for LDIF import plugins. 483 */ 484 private static final String NAME_LDIF_IMPORT = "ldifimport"; 485 486 487 488 /** 489 * The name that will be used for LDIF export plugins. 490 */ 491 private static final String NAME_LDIF_EXPORT = "ldifexport"; 492 493 494 495 /** 496 * The name that will be used for pre-parse abandon plugins. 497 */ 498 private static final String NAME_PRE_PARSE_ABANDON = 499 "preparseabandon"; 500 501 502 503 /** 504 * The name that will be used for pre-parse add plugins. 505 */ 506 private static final String NAME_PRE_PARSE_ADD = "preparseadd"; 507 508 509 510 /** 511 * The name that will be used for pre-parse bind plugins. 512 */ 513 private static final String NAME_PRE_PARSE_BIND = "preparsebind"; 514 515 516 517 /** 518 * The name that will be used for pre-parse compare plugins. 519 */ 520 private static final String NAME_PRE_PARSE_COMPARE = 521 "preparsecompare"; 522 523 524 525 /** 526 * The name that will be used for pre-parse delete plugins. 527 */ 528 private static final String NAME_PRE_PARSE_DELETE = 529 "preparsedelete"; 530 531 532 533 /** 534 * The name that will be used for pre-parse extended plugins. 535 */ 536 private static final String NAME_PRE_PARSE_EXTENDED = 537 "preparseextended"; 538 539 540 541 /** 542 * The name that will be used for pre-parse modify plugins. 543 */ 544 private static final String NAME_PRE_PARSE_MODIFY = 545 "preparsemodify"; 546 547 548 549 /** 550 * The name that will be used for pre-parse modify DN plugins. 551 */ 552 private static final String NAME_PRE_PARSE_MODIFY_DN = 553 "preparsemodifydn"; 554 555 556 557 /** 558 * The name that will be used for pre-parse search plugins. 559 */ 560 private static final String NAME_PRE_PARSE_SEARCH = 561 "preparsesearch"; 562 563 564 565 /** 566 * The name that will be used for pre-parse unbind plugins. 567 */ 568 private static final String NAME_PRE_PARSE_UNBIND = 569 "preparseunbind"; 570 571 572 573 /** 574 * The name that will be used for pre-operation add plugins. 575 */ 576 private static final String NAME_PRE_OPERATION_ADD = 577 "preoperationadd"; 578 579 580 581 /** 582 * The name that will be used for pre-operation bind plugins. 583 */ 584 private static final String NAME_PRE_OPERATION_BIND = 585 "preoperationbind"; 586 587 588 589 /** 590 * The name that will be used for pre-operation compare plugins. 591 */ 592 private static final String NAME_PRE_OPERATION_COMPARE = 593 "preoperationcompare"; 594 595 596 597 /** 598 * The name that will be used for pre-operation delete plugins. 599 */ 600 private static final String NAME_PRE_OPERATION_DELETE = 601 "preoperationdelete"; 602 603 604 605 /** 606 * The name that will be used for pre-operation extended plugins. 607 */ 608 private static final String NAME_PRE_OPERATION_EXTENDED = 609 "preoperationextended"; 610 611 612 613 /** 614 * The name that will be used for pre-operation modify plugins. 615 */ 616 private static final String NAME_PRE_OPERATION_MODIFY = 617 "preoperationmodify"; 618 619 620 621 /** 622 * The name that will be used for pre-operation modify DN plugins. 623 */ 624 private static final String NAME_PRE_OPERATION_MODIFY_DN = 625 "preoperationmodifydn"; 626 627 628 629 /** 630 * The name that will be used for pre-operation search plugins. 631 */ 632 private static final String NAME_PRE_OPERATION_SEARCH = 633 "preoperationsearch"; 634 635 636 637 /** 638 * The name that will be used for post-operation abandon plugins. 639 */ 640 private static final String NAME_POST_OPERATION_ABANDON = 641 "postoperationabandon"; 642 643 644 645 /** 646 * The name that will be used for post-operation add plugins. 647 */ 648 private static final String NAME_POST_OPERATION_ADD = 649 "postoperationadd"; 650 651 652 653 /** 654 * The name that will be used for post-operation bind plugins. 655 */ 656 private static final String NAME_POST_OPERATION_BIND = 657 "postoperationbind"; 658 659 660 661 /** 662 * The name that will be used for post-operation compare plugins. 663 */ 664 private static final String NAME_POST_OPERATION_COMPARE = 665 "postoperationcompare"; 666 667 668 669 /** 670 * The name that will be used for post-operation delete plugins. 671 */ 672 private static final String NAME_POST_OPERATION_DELETE = 673 "postoperationdelete"; 674 675 676 677 /** 678 * The name that will be used for post-operation extended plugins. 679 */ 680 private static final String NAME_POST_OPERATION_EXTENDED = 681 "postoperationextended"; 682 683 684 685 /** 686 * The name that will be used for post-operation modify plugins. 687 */ 688 private static final String NAME_POST_OPERATION_MODIFY = 689 "postoperationmodify"; 690 691 692 693 /** 694 * The name that will be used for post-operation modify DN plugins. 695 */ 696 private static final String NAME_POST_OPERATION_MODIFY_DN = 697 "postoperationmodifydn"; 698 699 700 701 /** 702 * The name that will be used for post-operation search plugins. 703 */ 704 private static final String NAME_POST_OPERATION_SEARCH = 705 "postoperationsearch"; 706 707 708 709 /** 710 * The name that will be used for post-operation unbind plugins. 711 */ 712 private static final String NAME_POST_OPERATION_UNBIND = 713 "postoperationunbind"; 714 715 716 717 /** 718 * The name that will be used for post-response add plugins. 719 */ 720 private static final String NAME_POST_RESPONSE_ADD = 721 "postresponseadd"; 722 723 724 725 /** 726 * The name that will be used for post-response bind plugins. 727 */ 728 private static final String NAME_POST_RESPONSE_BIND = 729 "postresponsebind"; 730 731 732 733 /** 734 * The name that will be used for post-response compare plugins. 735 */ 736 private static final String NAME_POST_RESPONSE_COMPARE = 737 "postresponsecompare"; 738 739 740 741 /** 742 * The name that will be used for post-response delete plugins. 743 */ 744 private static final String NAME_POST_RESPONSE_DELETE = 745 "postresponsedelete"; 746 747 748 749 /** 750 * The name that will be used for post-response extended plugins. 751 */ 752 private static final String NAME_POST_RESPONSE_EXTENDED = 753 "postresponseextended"; 754 755 756 757 /** 758 * The name that will be used for post-response modify plugins. 759 */ 760 private static final String NAME_POST_RESPONSE_MODIFY = 761 "postresponsemodify"; 762 763 764 765 /** 766 * The name that will be used for post-response modify DN plugins. 767 */ 768 private static final String NAME_POST_RESPONSE_MODIFY_DN = 769 "postresponsemodifydn"; 770 771 772 773 /** 774 * The name that will be used for post-response search plugins. 775 */ 776 private static final String NAME_POST_RESPONSE_SEARCH = 777 "postresponsesearch"; 778 779 780 781 /** 782 * The name that will be used for post-synchronization add plugins. 783 */ 784 private static final String NAME_POST_SYNCHRONIZATION_ADD = 785 "postsynchronizationadd"; 786 787 788 789 /** 790 * The name that will be used for post-synchronization delete 791 * plugins. 792 */ 793 private static final String NAME_POST_SYNCHRONIZATION_DELETE = 794 "postsynchronizationdelete"; 795 796 797 798 /** 799 * The name that will be used for post-synchronization modify 800 * plugins. 801 */ 802 private static final String NAME_POST_SYNCHRONIZATION_MODIFY = 803 "postsynchronizationmodify"; 804 805 806 807 /** 808 * The name that will be used for post-synchronization modify DN 809 * plugins. 810 */ 811 private static final String NAME_POST_SYNCHRONIZATION_MODIFY_DN = 812 "postsynchronizationmodifydn"; 813 814 815 816 /** 817 * The name that will be used for search result entry plugins. 818 */ 819 private static final String NAME_SEARCH_ENTRY = "searchresultentry"; 820 821 822 823 /** 824 * The name that will be used for search result reference plugins. 825 */ 826 private static final String NAME_SEARCH_REFERENCE = 827 "searchresultreference"; 828 829 830 831 /** 832 * The name that will be used for subordinate modify DN plugins. 833 */ 834 private static final String NAME_SUBORDINATE_MODIFY_DN = 835 "subordinatemodifydn"; 836 837 838 839 /** 840 * The name that will be used for intermediate response plugins. 841 */ 842 private static final String NAME_INTERMEDIATE_RESPONSE = 843 "intermediateresponse"; 844 845 846 847 /** 848 * A hash set containing the names of all the available plugin 849 * types. 850 */ 851 private static final Set<String> PLUGIN_TYPE_NAMES = 852 new HashSet<String>(50); 853 854 855 856 /** 857 * A hash map that relates the plugin type names to the 858 * corresponding plugin type. 859 */ 860 private static final Map<String,PluginType> PLUGIN_TYPE_MAP = 861 new HashMap<String,PluginType>(50); 862 863 864 865 static 866 { 867 PLUGIN_TYPE_NAMES.add(PluginType.NAME_STARTUP); 868 PLUGIN_TYPE_NAMES.add(PluginType.NAME_SHUTDOWN); 869 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_CONNECT); 870 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_DISCONNECT); 871 PLUGIN_TYPE_NAMES.add(PluginType.NAME_LDIF_IMPORT); 872 PLUGIN_TYPE_NAMES.add(PluginType.NAME_LDIF_EXPORT); 873 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_PARSE_ABANDON); 874 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_PARSE_ADD); 875 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_PARSE_BIND); 876 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_PARSE_COMPARE); 877 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_PARSE_DELETE); 878 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_PARSE_EXTENDED); 879 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_PARSE_MODIFY); 880 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_PARSE_MODIFY_DN); 881 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_PARSE_SEARCH); 882 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_PARSE_UNBIND); 883 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_OPERATION_ADD); 884 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_OPERATION_BIND); 885 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_OPERATION_COMPARE); 886 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_OPERATION_DELETE); 887 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_OPERATION_EXTENDED); 888 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_OPERATION_MODIFY); 889 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_OPERATION_MODIFY_DN); 890 PLUGIN_TYPE_NAMES.add(PluginType.NAME_PRE_OPERATION_SEARCH); 891 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_OPERATION_ABANDON); 892 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_OPERATION_ADD); 893 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_OPERATION_BIND); 894 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_OPERATION_COMPARE); 895 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_OPERATION_DELETE); 896 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_OPERATION_EXTENDED); 897 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_OPERATION_MODIFY); 898 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_OPERATION_MODIFY_DN); 899 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_OPERATION_SEARCH); 900 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_OPERATION_UNBIND); 901 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_RESPONSE_ADD); 902 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_RESPONSE_BIND); 903 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_RESPONSE_COMPARE); 904 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_RESPONSE_DELETE); 905 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_RESPONSE_EXTENDED); 906 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_RESPONSE_MODIFY); 907 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_RESPONSE_MODIFY_DN); 908 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_RESPONSE_SEARCH); 909 PLUGIN_TYPE_NAMES.add(PluginType.NAME_POST_SYNCHRONIZATION_ADD); 910 PLUGIN_TYPE_NAMES.add( 911 PluginType.NAME_POST_SYNCHRONIZATION_DELETE); 912 PLUGIN_TYPE_NAMES.add( 913 PluginType.NAME_POST_SYNCHRONIZATION_MODIFY); 914 PLUGIN_TYPE_NAMES.add( 915 PluginType.NAME_POST_SYNCHRONIZATION_MODIFY_DN); 916 PLUGIN_TYPE_NAMES.add(PluginType.NAME_SEARCH_ENTRY); 917 PLUGIN_TYPE_NAMES.add(PluginType.NAME_SEARCH_REFERENCE); 918 PLUGIN_TYPE_NAMES.add(PluginType.NAME_SUBORDINATE_MODIFY_DN); 919 PLUGIN_TYPE_NAMES.add(PluginType.NAME_INTERMEDIATE_RESPONSE); 920 921 PLUGIN_TYPE_MAP.put(PluginType.NAME_STARTUP, PluginType.STARTUP); 922 PLUGIN_TYPE_MAP.put(PluginType.NAME_SHUTDOWN, 923 PluginType.SHUTDOWN); 924 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_CONNECT, 925 PluginType.POST_CONNECT); 926 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_DISCONNECT, 927 PluginType.POST_DISCONNECT); 928 PLUGIN_TYPE_MAP.put(PluginType.NAME_LDIF_IMPORT, 929 PluginType.LDIF_IMPORT); 930 PLUGIN_TYPE_MAP.put(PluginType.NAME_LDIF_EXPORT, 931 PluginType.LDIF_EXPORT); 932 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_PARSE_ABANDON, 933 PluginType.PRE_PARSE_ABANDON); 934 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_PARSE_ADD, 935 PluginType.PRE_PARSE_ADD); 936 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_PARSE_BIND, 937 PluginType.PRE_PARSE_BIND); 938 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_PARSE_COMPARE, 939 PluginType.PRE_PARSE_COMPARE); 940 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_PARSE_DELETE, 941 PluginType.PRE_PARSE_DELETE); 942 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_PARSE_EXTENDED, 943 PluginType.PRE_PARSE_EXTENDED); 944 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_PARSE_MODIFY, 945 PluginType.PRE_PARSE_MODIFY); 946 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_PARSE_MODIFY_DN, 947 PluginType.PRE_PARSE_MODIFY_DN); 948 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_PARSE_SEARCH, 949 PluginType.PRE_PARSE_SEARCH); 950 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_PARSE_UNBIND, 951 PluginType.PRE_PARSE_UNBIND); 952 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_OPERATION_ADD, 953 PluginType.PRE_OPERATION_ADD); 954 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_OPERATION_BIND, 955 PluginType.PRE_OPERATION_BIND); 956 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_OPERATION_COMPARE, 957 PluginType.PRE_OPERATION_COMPARE); 958 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_OPERATION_DELETE, 959 PluginType.PRE_OPERATION_DELETE); 960 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_OPERATION_EXTENDED, 961 PluginType.PRE_OPERATION_EXTENDED); 962 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_OPERATION_MODIFY, 963 PluginType.PRE_OPERATION_MODIFY); 964 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_OPERATION_MODIFY_DN, 965 PluginType.PRE_OPERATION_MODIFY_DN); 966 PLUGIN_TYPE_MAP.put(PluginType.NAME_PRE_OPERATION_SEARCH, 967 PluginType.PRE_OPERATION_SEARCH); 968 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_OPERATION_ABANDON, 969 PluginType.POST_OPERATION_ABANDON); 970 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_OPERATION_ADD, 971 PluginType.POST_OPERATION_ADD); 972 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_OPERATION_BIND, 973 PluginType.POST_OPERATION_BIND); 974 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_OPERATION_COMPARE, 975 PluginType.POST_OPERATION_COMPARE); 976 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_OPERATION_DELETE, 977 PluginType.POST_OPERATION_DELETE); 978 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_OPERATION_EXTENDED, 979 PluginType.POST_OPERATION_EXTENDED); 980 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_OPERATION_MODIFY, 981 PluginType.POST_OPERATION_MODIFY); 982 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_OPERATION_MODIFY_DN, 983 PluginType.POST_OPERATION_MODIFY_DN); 984 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_OPERATION_SEARCH, 985 PluginType.POST_OPERATION_SEARCH); 986 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_OPERATION_UNBIND, 987 PluginType.POST_OPERATION_UNBIND); 988 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_RESPONSE_ADD, 989 PluginType.POST_RESPONSE_ADD); 990 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_RESPONSE_BIND, 991 PluginType.POST_RESPONSE_BIND); 992 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_RESPONSE_COMPARE, 993 PluginType.POST_RESPONSE_COMPARE); 994 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_RESPONSE_DELETE, 995 PluginType.POST_RESPONSE_DELETE); 996 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_RESPONSE_EXTENDED, 997 PluginType.POST_RESPONSE_EXTENDED); 998 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_RESPONSE_MODIFY, 999 PluginType.POST_RESPONSE_MODIFY); 1000 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_RESPONSE_MODIFY_DN, 1001 PluginType.POST_RESPONSE_MODIFY_DN); 1002 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_RESPONSE_SEARCH, 1003 PluginType.POST_RESPONSE_SEARCH); 1004 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_SYNCHRONIZATION_ADD, 1005 PluginType.POST_SYNCHRONIZATION_ADD); 1006 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_SYNCHRONIZATION_DELETE, 1007 PluginType.POST_SYNCHRONIZATION_DELETE); 1008 PLUGIN_TYPE_MAP.put(PluginType.NAME_POST_SYNCHRONIZATION_MODIFY, 1009 PluginType.POST_SYNCHRONIZATION_MODIFY); 1010 PLUGIN_TYPE_MAP.put( 1011 PluginType.NAME_POST_SYNCHRONIZATION_MODIFY_DN, 1012 PluginType.POST_SYNCHRONIZATION_MODIFY_DN); 1013 PLUGIN_TYPE_MAP.put(PluginType.NAME_SEARCH_ENTRY, 1014 PluginType.SEARCH_RESULT_ENTRY); 1015 PLUGIN_TYPE_MAP.put(PluginType.NAME_SEARCH_REFERENCE, 1016 PluginType.SEARCH_RESULT_REFERENCE); 1017 PLUGIN_TYPE_MAP.put(PluginType.NAME_SUBORDINATE_MODIFY_DN, 1018 PluginType.SUBORDINATE_MODIFY_DN); 1019 PLUGIN_TYPE_MAP.put(PluginType.NAME_INTERMEDIATE_RESPONSE, 1020 PluginType.INTERMEDIATE_RESPONSE); 1021 } 1022 1023 1024 1025 // The name for this plugin type. 1026 private String name; 1027 1028 1029 1030 /** 1031 * Creates a new plugin type instance with the specified name. 1032 * 1033 * @param name The name to use for this plugin type. 1034 */ 1035 private PluginType(String name) 1036 { 1037 this.name = name; 1038 } 1039 1040 1041 1042 /** 1043 * Retrieves the name for this plugin type. 1044 * 1045 * @return The name for this plugin type. 1046 */ 1047 public String getName() 1048 { 1049 return name; 1050 } 1051 1052 1053 1054 /** 1055 * Retrieves a string representation of this plugin type. 1056 * 1057 * @return A string representation of this plugin type. 1058 */ 1059 public String toString() 1060 { 1061 return name; 1062 } 1063 1064 1065 1066 /** 1067 * Retrieves a hash set containing the names of all the plugin 1068 * types. 1069 * 1070 * @return A hash set containing the names of all the plugin types. 1071 */ 1072 public static Set<String> getPluginTypeNames() 1073 { 1074 return PLUGIN_TYPE_NAMES; 1075 } 1076 1077 1078 1079 /** 1080 * Retrieves the plugin type for the plugin with the specified name. 1081 * 1082 * @param lowerName The name of the plugin type to retrieve, 1083 * formatted in all lowercase characters. 1084 * 1085 * @return The requested plugin type, or {@code null} if there is 1086 * no type for the provided name. 1087 */ 1088 public static PluginType forName(String lowerName) 1089 { 1090 return PLUGIN_TYPE_MAP.get(lowerName); 1091 } 1092 } 1093