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 * https://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 */ 020package org.apache.directory.ldap.client.api; 021 022 023import java.io.IOException; 024import java.util.List; 025 026import org.apache.directory.api.asn1.util.Oid; 027import org.apache.directory.api.ldap.codec.api.BinaryAttributeDetector; 028import org.apache.directory.api.ldap.codec.api.LdapApiService; 029import org.apache.directory.api.ldap.model.cursor.EntryCursor; 030import org.apache.directory.api.ldap.model.cursor.SearchCursor; 031import org.apache.directory.api.ldap.model.entry.Entry; 032import org.apache.directory.api.ldap.model.entry.Modification; 033import org.apache.directory.api.ldap.model.entry.ModificationOperation; 034import org.apache.directory.api.ldap.model.entry.Value; 035import org.apache.directory.api.ldap.model.exception.LdapException; 036import org.apache.directory.api.ldap.model.message.AbandonRequest; 037import org.apache.directory.api.ldap.model.message.AddRequest; 038import org.apache.directory.api.ldap.model.message.AddResponse; 039import org.apache.directory.api.ldap.model.message.BindRequest; 040import org.apache.directory.api.ldap.model.message.BindResponse; 041import org.apache.directory.api.ldap.model.message.CompareRequest; 042import org.apache.directory.api.ldap.model.message.CompareResponse; 043import org.apache.directory.api.ldap.model.message.Control; 044import org.apache.directory.api.ldap.model.message.DeleteRequest; 045import org.apache.directory.api.ldap.model.message.DeleteResponse; 046import org.apache.directory.api.ldap.model.message.ExtendedRequest; 047import org.apache.directory.api.ldap.model.message.ExtendedResponse; 048import org.apache.directory.api.ldap.model.message.ModifyDnRequest; 049import org.apache.directory.api.ldap.model.message.ModifyDnResponse; 050import org.apache.directory.api.ldap.model.message.ModifyRequest; 051import org.apache.directory.api.ldap.model.message.ModifyResponse; 052import org.apache.directory.api.ldap.model.message.SearchRequest; 053import org.apache.directory.api.ldap.model.message.SearchScope; 054import org.apache.directory.api.ldap.model.name.Dn; 055import org.apache.directory.api.ldap.model.name.Rdn; 056import org.apache.directory.api.ldap.model.schema.SchemaManager; 057 058 059/** 060 * Provides a base implementation of a {@link Wrapper} for {@link LdapConnection} 061 * objects. All methods are passed through to the wrapped 062 * <code>LdapConnection</code>. 063 * 064 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> 065 */ 066public class LdapConnectionWrapper implements LdapConnection, Wrapper<LdapConnection> 067{ 068 /** The wrapped connection */ 069 protected LdapConnection connection; 070 071 072 /** 073 * Creates a new LdapConnectionWrapper instance 074 * 075 * @param connection The wrapped connection 076 */ 077 protected LdapConnectionWrapper( LdapConnection connection ) 078 { 079 this.connection = connection; 080 } 081 082 083 /** 084 * {@inheritDoc} 085 */ 086 @Override 087 public LdapConnection wrapped() 088 { 089 return connection; 090 } 091 092 093 /** 094 * {@inheritDoc} 095 */ 096 @Override 097 public boolean isConnected() 098 { 099 return connection.isConnected(); 100 } 101 102 103 /** 104 * {@inheritDoc} 105 */ 106 @Override 107 public boolean isAuthenticated() 108 { 109 return connection.isAuthenticated(); 110 } 111 112 113 /** 114 * {@inheritDoc} 115 */ 116 @Override 117 public boolean connect() throws LdapException 118 { 119 return connection.connect(); 120 } 121 122 123 /** 124 * {@inheritDoc} 125 */ 126 public Throwable exceptionCaught() 127 { 128 return connection.exceptionCaught(); 129 } 130 131 132 /** 133 * {@inheritDoc} 134 */ 135 @Override 136 public void close() throws IOException 137 { 138 connection.close(); 139 } 140 141 142 /** 143 * {@inheritDoc} 144 */ 145 @Override 146 public void add( Entry entry ) throws LdapException 147 { 148 connection.add( entry ); 149 } 150 151 152 /** 153 * {@inheritDoc} 154 */ 155 @Override 156 public AddResponse add( AddRequest addRequest ) throws LdapException 157 { 158 return connection.add( addRequest ); 159 } 160 161 162 /** 163 * {@inheritDoc} 164 */ 165 @Override 166 public void abandon( int messageId ) 167 { 168 connection.abandon( messageId ); 169 } 170 171 172 /** 173 * {@inheritDoc} 174 */ 175 @Override 176 public void abandon( AbandonRequest abandonRequest ) 177 { 178 connection.abandon( abandonRequest ); 179 } 180 181 182 /** 183 * {@inheritDoc} 184 */ 185 @Override 186 public void bind() throws LdapException 187 { 188 connection.bind(); 189 } 190 191 192 /** 193 * {@inheritDoc} 194 */ 195 @Override 196 public void anonymousBind() throws LdapException 197 { 198 connection.anonymousBind(); 199 } 200 201 202 /** 203 * {@inheritDoc} 204 */ 205 @Override 206 public void bind( String name ) throws LdapException 207 { 208 connection.bind( name ); 209 } 210 211 212 /** 213 * {@inheritDoc} 214 */ 215 @Override 216 public void bind( String name, String credentials ) throws LdapException 217 { 218 connection.bind( name, credentials ); 219 } 220 221 222 /** 223 * {@inheritDoc} 224 */ 225 @Override 226 public void bind( Dn name ) throws LdapException 227 { 228 connection.bind( name ); 229 } 230 231 232 /** 233 * {@inheritDoc} 234 */ 235 @Override 236 public void bind( Dn name, String credentials ) throws LdapException 237 { 238 connection.bind( name, credentials ); 239 } 240 241 242 /** 243 * {@inheritDoc} 244 */ 245 @Override 246 public BindResponse bind( BindRequest bindRequest ) throws LdapException 247 { 248 return connection.bind( bindRequest ); 249 } 250 251 252 /** 253 * {@inheritDoc} 254 */ 255 @Override 256 public BindResponse bind( SaslRequest saslRequest ) throws LdapException 257 { 258 return connection.bind( saslRequest ); 259 } 260 261 262 /** 263 * {@inheritDoc} 264 */ 265 @Override 266 public EntryCursor search( Dn baseDn, String filter, SearchScope scope, String... attributes ) 267 throws LdapException 268 { 269 return connection.search( baseDn, filter, scope, attributes ); 270 } 271 272 273 /** 274 * {@inheritDoc} 275 */ 276 @Override 277 public EntryCursor search( String baseDn, String filter, SearchScope scope, String... attributes ) 278 throws LdapException 279 { 280 return connection.search( baseDn, filter, scope, attributes ); 281 } 282 283 284 /** 285 * {@inheritDoc} 286 */ 287 @Override 288 public SearchCursor search( SearchRequest searchRequest ) throws LdapException 289 { 290 return connection.search( searchRequest ); 291 } 292 293 294 /** 295 * {@inheritDoc} 296 */ 297 @Override 298 public void unBind() throws LdapException 299 { 300 connection.unBind(); 301 } 302 303 304 /** 305 * {@inheritDoc} 306 */ 307 @Override 308 public void setTimeOut( long timeOut ) 309 { 310 connection.setTimeOut( timeOut ); 311 } 312 313 314 /** 315 * {@inheritDoc} 316 */ 317 @Override 318 public void modify( Dn dn, Modification... modifications ) throws LdapException 319 { 320 connection.modify( dn, modifications ); 321 } 322 323 324 /** 325 * {@inheritDoc} 326 */ 327 @Override 328 public void modify( String dn, Modification... modifications ) throws LdapException 329 { 330 connection.modify( dn, modifications ); 331 } 332 333 334 /** 335 * {@inheritDoc} 336 */ 337 @Override 338 public void modify( Entry entry, ModificationOperation modOp ) throws LdapException 339 { 340 connection.modify( entry, modOp ); 341 } 342 343 344 /** 345 * {@inheritDoc} 346 */ 347 @Override 348 public ModifyResponse modify( ModifyRequest modRequest ) throws LdapException 349 { 350 return connection.modify( modRequest ); 351 } 352 353 354 /** 355 * {@inheritDoc} 356 */ 357 @Override 358 public void rename( String entryDn, String newRdn ) throws LdapException 359 { 360 connection.rename( entryDn, newRdn ); 361 } 362 363 364 /** 365 * {@inheritDoc} 366 */ 367 @Override 368 public void rename( Dn entryDn, Rdn newRdn ) throws LdapException 369 { 370 connection.rename( entryDn, newRdn ); 371 } 372 373 374 /** 375 * {@inheritDoc} 376 */ 377 @Override 378 public void rename( String entryDn, String newRdn, boolean deleteOldRdn ) throws LdapException 379 { 380 connection.rename( entryDn, newRdn, deleteOldRdn ); 381 } 382 383 384 /** 385 * {@inheritDoc} 386 */ 387 @Override 388 public void rename( Dn entryDn, Rdn newRdn, boolean deleteOldRdn ) throws LdapException 389 { 390 connection.rename( entryDn, newRdn, deleteOldRdn ); 391 } 392 393 394 /** 395 * {@inheritDoc} 396 */ 397 @Override 398 public void move( String entryDn, String newSuperiorDn ) throws LdapException 399 { 400 connection.move( entryDn, newSuperiorDn ); 401 } 402 403 404 /** 405 * {@inheritDoc} 406 */ 407 @Override 408 public void move( Dn entryDn, Dn newSuperiorDn ) throws LdapException 409 { 410 connection.move( entryDn, newSuperiorDn ); 411 } 412 413 414 /** 415 * {@inheritDoc} 416 */ 417 @Override 418 public void moveAndRename( Dn entryDn, Dn newDn ) throws LdapException 419 { 420 connection.moveAndRename( entryDn, newDn ); 421 } 422 423 424 /** 425 * {@inheritDoc} 426 */ 427 @Override 428 public void moveAndRename( String entryDn, String newDn ) throws LdapException 429 { 430 connection.moveAndRename( entryDn, newDn ); 431 } 432 433 434 /** 435 * {@inheritDoc} 436 */ 437 @Override 438 public void moveAndRename( Dn entryDn, Dn newDn, boolean deleteOldRdn ) throws LdapException 439 { 440 connection.moveAndRename( entryDn, newDn, deleteOldRdn ); 441 } 442 443 444 /** 445 * {@inheritDoc} 446 */ 447 @Override 448 public void moveAndRename( String entryDn, String newDn, boolean deleteOldRdn ) throws LdapException 449 { 450 connection.moveAndRename( entryDn, newDn, deleteOldRdn ); 451 } 452 453 454 /** 455 * {@inheritDoc} 456 */ 457 @Override 458 public ModifyDnResponse modifyDn( ModifyDnRequest modDnRequest ) throws LdapException 459 { 460 return connection.modifyDn( modDnRequest ); 461 } 462 463 464 /** 465 * {@inheritDoc} 466 */ 467 @Override 468 public void delete( String dn ) throws LdapException 469 { 470 connection.delete( dn ); 471 } 472 473 474 /** 475 * {@inheritDoc} 476 */ 477 @Override 478 public void delete( Dn dn ) throws LdapException 479 { 480 connection.delete( dn ); 481 } 482 483 484 /** 485 * {@inheritDoc} 486 */ 487 @Override 488 public DeleteResponse delete( DeleteRequest deleteRequest ) throws LdapException 489 { 490 return connection.delete( deleteRequest ); 491 } 492 493 494 /** 495 * {@inheritDoc} 496 */ 497 @Override 498 public boolean compare( String dn, String attributeName, String value ) throws LdapException 499 { 500 return connection.compare( dn, attributeName, value ); 501 } 502 503 504 /** 505 * {@inheritDoc} 506 */ 507 @Override 508 public boolean compare( String dn, String attributeName, byte[] value ) throws LdapException 509 { 510 return connection.compare( dn, attributeName, value ); 511 } 512 513 514 /** 515 * {@inheritDoc} 516 */ 517 @Override 518 public boolean compare( String dn, String attributeName, Value value ) throws LdapException 519 { 520 return connection.compare( dn, attributeName, value ); 521 } 522 523 524 /** 525 * {@inheritDoc} 526 */ 527 @Override 528 public boolean compare( Dn dn, String attributeName, String value ) throws LdapException 529 { 530 return connection.compare( dn, attributeName, value ); 531 } 532 533 534 /** 535 * {@inheritDoc} 536 */ 537 @Override 538 public boolean compare( Dn dn, String attributeName, byte[] value ) throws LdapException 539 { 540 return connection.compare( dn, attributeName, value ); 541 } 542 543 544 /** 545 * {@inheritDoc} 546 */ 547 @Override 548 public boolean compare( Dn dn, String attributeName, Value value ) throws LdapException 549 { 550 return connection.compare( dn, attributeName, value ); 551 } 552 553 554 /** 555 * {@inheritDoc} 556 */ 557 @Override 558 public CompareResponse compare( CompareRequest compareRequest ) throws LdapException 559 { 560 return connection.compare( compareRequest ); 561 } 562 563 564 /** 565 * {@inheritDoc} 566 */ 567 @Override 568 public ExtendedResponse extended( String oid ) throws LdapException 569 { 570 return connection.extended( oid ); 571 } 572 573 574 /** 575 * {@inheritDoc} 576 */ 577 @Override 578 public ExtendedResponse extended( String oid, byte[] value ) throws LdapException 579 { 580 return connection.extended( oid, value ); 581 } 582 583 584 /** 585 * {@inheritDoc} 586 */ 587 @Override 588 public ExtendedResponse extended( Oid oid ) throws LdapException 589 { 590 return connection.extended( oid ); 591 } 592 593 594 /** 595 * {@inheritDoc} 596 */ 597 @Override 598 public ExtendedResponse extended( Oid oid, byte[] value ) throws LdapException 599 { 600 return connection.extended( oid, value ); 601 } 602 603 604 /** 605 * {@inheritDoc} 606 */ 607 @Override 608 public ExtendedResponse extended( ExtendedRequest extendedRequest ) throws LdapException 609 { 610 return connection.extended( extendedRequest ); 611 } 612 613 614 /** 615 * {@inheritDoc} 616 */ 617 @Override 618 public boolean exists( String dn ) throws LdapException 619 { 620 return connection.exists( dn ); 621 } 622 623 624 /** 625 * {@inheritDoc} 626 */ 627 @Override 628 public boolean exists( Dn dn ) throws LdapException 629 { 630 return connection.exists( dn ); 631 } 632 633 634 /** 635 * {@inheritDoc} 636 */ 637 @Override 638 public Entry getRootDse() throws LdapException 639 { 640 return connection.getRootDse(); 641 } 642 643 644 /** 645 * {@inheritDoc} 646 */ 647 @Override 648 public Entry getRootDse( String... attributes ) throws LdapException 649 { 650 return connection.getRootDse( attributes ); 651 } 652 653 654 /** 655 * {@inheritDoc} 656 */ 657 @Override 658 public Entry lookup( Dn dn ) throws LdapException 659 { 660 return connection.lookup( dn ); 661 } 662 663 664 /** 665 * {@inheritDoc} 666 */ 667 @Override 668 public Entry lookup( String dn ) throws LdapException 669 { 670 return connection.lookup( dn ); 671 } 672 673 674 /** 675 * {@inheritDoc} 676 */ 677 @Override 678 public Entry lookup( Dn dn, String... attributes ) throws LdapException 679 { 680 return connection.lookup( dn, attributes ); 681 } 682 683 684 /** 685 * {@inheritDoc} 686 */ 687 @Override 688 public Entry lookup( Dn dn, Control[] controls, String... attributes ) throws LdapException 689 { 690 return connection.lookup( dn, controls, attributes ); 691 } 692 693 694 /** 695 * {@inheritDoc} 696 */ 697 @Override 698 public Entry lookup( String dn, String... attributes ) throws LdapException 699 { 700 return connection.lookup( dn, attributes ); 701 } 702 703 704 /** 705 * {@inheritDoc} 706 */ 707 @Override 708 public Entry lookup( String dn, Control[] controls, String... attributes ) throws LdapException 709 { 710 return connection.lookup( dn, controls, attributes ); 711 } 712 713 714 /** 715 * {@inheritDoc} 716 */ 717 @Override 718 public boolean isControlSupported( String controlOID ) throws LdapException 719 { 720 return connection.isControlSupported( controlOID ); 721 } 722 723 724 /** 725 * {@inheritDoc} 726 */ 727 @Override 728 public List<String> getSupportedControls() throws LdapException 729 { 730 return connection.getSupportedControls(); 731 } 732 733 734 /** 735 * {@inheritDoc} 736 */ 737 @Override 738 public void loadSchema() throws LdapException 739 { 740 connection.loadSchema(); 741 } 742 743 744 /** 745 * {@inheritDoc} 746 */ 747 @Override 748 public SchemaManager getSchemaManager() 749 { 750 return connection.getSchemaManager(); 751 } 752 753 754 /** 755 * {@inheritDoc} 756 */ 757 @Override 758 public LdapApiService getCodecService() 759 { 760 return connection.getCodecService(); 761 } 762 763 764 /** 765 * {@inheritDoc} 766 */ 767 @Override 768 public boolean isRequestCompleted( int messageId ) 769 { 770 return connection.isRequestCompleted( messageId ); 771 } 772 773 774 /** 775 * {@inheritDoc} 776 */ 777 @Override 778 public boolean doesFutureExistFor( int messageId ) 779 { 780 return connection.isRequestCompleted( messageId ); 781 } 782 783 784 /** 785 * {@inheritDoc} 786 */ 787 @Override 788 public BinaryAttributeDetector getBinaryAttributeDetector() 789 { 790 return connection.getBinaryAttributeDetector(); 791 } 792 793 794 /** 795 * {@inheritDoc} 796 */ 797 @Override 798 public void setBinaryAttributeDetector( BinaryAttributeDetector binaryAttributeDetecter ) 799 { 800 connection.setBinaryAttributeDetector( binaryAttributeDetecter ); 801 } 802 803 804 /** 805 * {@inheritDoc} 806 */ 807 @Override 808 public void setSchemaManager( SchemaManager schemaManager ) 809 { 810 connection.setSchemaManager( schemaManager ); 811 } 812 813 814 /** 815 * {@inheritDoc} 816 */ 817 @Override 818 public void loadSchemaRelaxed() throws LdapException 819 { 820 connection.loadSchemaRelaxed(); 821 } 822}