package org.adsync4j.unboundid; import com.unboundid.ldap.sdk.*; import com.unboundid.ldap.sdk.schema.Schema; import com.unboundid.ldif.LDIFException; import java.util.Collection; import java.util.List; /** * Abstract base class for classes decorating an {@link LDAPConnection}. */ abstract public class AbstractUnboundIDLdapConnectionDecorator implements UnboundIDLdapConnection { private final LDAPInterface _delegateConnection; public AbstractUnboundIDLdapConnectionDecorator(LDAPConnection delegateConnection) { _delegateConnection = delegateConnection; } /** * Made available only for unit testing purposes. */ /*package*/ AbstractUnboundIDLdapConnectionDecorator(LDAPInterface delegateConnection) { _delegateConnection = delegateConnection; } // region delegating methods of LDAPConnection exposed by UnboundIDLdapConnection @Override public void close() { if (_delegateConnection instanceof LDAPConnection) { ((LDAPConnection) _delegateConnection).close(); } else { throw new UnsupportedOperationException(); } } @Override public void reconnect() throws LDAPException { if (_delegateConnection instanceof LDAPConnection) { ((LDAPConnection) _delegateConnection).reconnect(); } else { throw new UnsupportedOperationException(); } } @Override public boolean isConnected() { if (_delegateConnection instanceof LDAPConnection) { return ((LDAPConnection) _delegateConnection).isConnected(); } else { throw new UnsupportedOperationException(); } } // endregion // region delegating methods of LDAPInterface @Override public RootDSE getRootDSE() throws LDAPException {return _delegateConnection.getRootDSE();} @Override public Schema getSchema() throws LDAPException {return _delegateConnection.getSchema();} @Override public Schema getSchema(String entryDN) throws LDAPException {return _delegateConnection.getSchema(entryDN);} @Override public SearchResultEntry getEntry(String dn) throws LDAPException {return _delegateConnection.getEntry(dn);} @Override public SearchResultEntry getEntry(String dn, String... attributes) throws LDAPException { return _delegateConnection.getEntry(dn, attributes); } @Override public LDAPResult add(String dn, Attribute... attributes) throws LDAPException { return _delegateConnection.add(dn, attributes); } @Override public LDAPResult add(String dn, Collection<Attribute> attributes) throws LDAPException { return _delegateConnection.add(dn, attributes); } @Override public LDAPResult add(Entry entry) throws LDAPException {return _delegateConnection.add(entry);} @Override public LDAPResult add(String... ldifLines) throws LDIFException, LDAPException {return _delegateConnection.add(ldifLines);} @Override public LDAPResult add(AddRequest addRequest) throws LDAPException {return _delegateConnection.add(addRequest);} @Override public LDAPResult add(ReadOnlyAddRequest addRequest) throws LDAPException {return _delegateConnection.add(addRequest);} @Override public CompareResult compare(String dn, String attributeName, String assertionValue) throws LDAPException { return _delegateConnection.compare(dn, attributeName, assertionValue); } @Override public CompareResult compare(CompareRequest compareRequest) throws LDAPException { return _delegateConnection.compare(compareRequest); } @Override public CompareResult compare(ReadOnlyCompareRequest compareRequest) throws LDAPException { return _delegateConnection.compare(compareRequest); } @Override public LDAPResult delete(String dn) throws LDAPException {return _delegateConnection.delete(dn);} @Override public LDAPResult delete(DeleteRequest deleteRequest) throws LDAPException {return _delegateConnection.delete(deleteRequest);} @Override public LDAPResult delete(ReadOnlyDeleteRequest deleteRequest) throws LDAPException { return _delegateConnection.delete(deleteRequest); } @Override public LDAPResult modify(String dn, Modification mod) throws LDAPException {return _delegateConnection.modify(dn, mod);} @Override public LDAPResult modify(String dn, Modification... mods) throws LDAPException {return _delegateConnection.modify(dn, mods);} @Override public LDAPResult modify(String dn, List<Modification> mods) throws LDAPException { return _delegateConnection.modify(dn, mods); } @Override public LDAPResult modify(String... ldifModificationLines) throws LDIFException, LDAPException { return _delegateConnection.modify(ldifModificationLines); } @Override public LDAPResult modify(ModifyRequest modifyRequest) throws LDAPException {return _delegateConnection.modify(modifyRequest);} @Override public LDAPResult modify(ReadOnlyModifyRequest modifyRequest) throws LDAPException { return _delegateConnection.modify(modifyRequest); } @Override public LDAPResult modifyDN(String dn, String newRDN, boolean deleteOldRDN) throws LDAPException { return _delegateConnection.modifyDN(dn, newRDN, deleteOldRDN); } @Override public LDAPResult modifyDN(String dn, String newRDN, boolean deleteOldRDN, String newSuperiorDN) throws LDAPException { return _delegateConnection.modifyDN(dn, newRDN, deleteOldRDN, newSuperiorDN); } @Override public LDAPResult modifyDN(ModifyDNRequest modifyDNRequest) throws LDAPException { return _delegateConnection.modifyDN(modifyDNRequest); } @Override public LDAPResult modifyDN(ReadOnlyModifyDNRequest modifyDNRequest) throws LDAPException { return _delegateConnection.modifyDN(modifyDNRequest); } @Override public SearchResult search( String baseDN, SearchScope scope, String filter, String... attributes) throws LDAPSearchException {return _delegateConnection.search(baseDN, scope, filter, attributes);} @Override public SearchResult search( String baseDN, SearchScope scope, Filter filter, String... attributes) throws LDAPSearchException {return _delegateConnection.search(baseDN, scope, filter, attributes);} @Override public SearchResult search( SearchResultListener searchResultListener, String baseDN, SearchScope scope, String filter, String... attributes) throws LDAPSearchException {return _delegateConnection.search(searchResultListener, baseDN, scope, filter, attributes);} @Override public SearchResult search( SearchResultListener searchResultListener, String baseDN, SearchScope scope, Filter filter, String... attributes) throws LDAPSearchException {return _delegateConnection.search(searchResultListener, baseDN, scope, filter, attributes);} @Override public SearchResult search( String baseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, String filter, String... attributes) throws LDAPSearchException {return _delegateConnection.search(baseDN, scope, derefPolicy, sizeLimit, timeLimit, typesOnly, filter, attributes);} @Override public SearchResult search( String baseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, Filter filter, String... attributes) throws LDAPSearchException {return _delegateConnection.search(baseDN, scope, derefPolicy, sizeLimit, timeLimit, typesOnly, filter, attributes);} @Override public SearchResult search( SearchResultListener searchResultListener, String baseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, String filter, String... attributes) throws LDAPSearchException { return _delegateConnection .search(searchResultListener, baseDN, scope, derefPolicy, sizeLimit, timeLimit, typesOnly, filter, attributes); } @Override public SearchResult search( SearchResultListener searchResultListener, String baseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, Filter filter, String... attributes) throws LDAPSearchException { return _delegateConnection .search(searchResultListener, baseDN, scope, derefPolicy, sizeLimit, timeLimit, typesOnly, filter, attributes); } @Override public SearchResult search(SearchRequest searchRequest) throws LDAPSearchException { return _delegateConnection.search(searchRequest); } @Override public SearchResult search(ReadOnlySearchRequest searchRequest) throws LDAPSearchException { return _delegateConnection.search(searchRequest); } @Override public SearchResultEntry searchForEntry( String baseDN, SearchScope scope, String filter, String... attributes) throws LDAPSearchException {return _delegateConnection.searchForEntry(baseDN, scope, filter, attributes);} @Override public SearchResultEntry searchForEntry( String baseDN, SearchScope scope, Filter filter, String... attributes) throws LDAPSearchException {return _delegateConnection.searchForEntry(baseDN, scope, filter, attributes);} @Override public SearchResultEntry searchForEntry( String baseDN, SearchScope scope, DereferencePolicy derefPolicy, int timeLimit, boolean typesOnly, String filter, String... attributes) throws LDAPSearchException {return _delegateConnection.searchForEntry(baseDN, scope, derefPolicy, timeLimit, typesOnly, filter, attributes);} @Override public SearchResultEntry searchForEntry( String baseDN, SearchScope scope, DereferencePolicy derefPolicy, int timeLimit, boolean typesOnly, Filter filter, String... attributes) throws LDAPSearchException {return _delegateConnection.searchForEntry(baseDN, scope, derefPolicy, timeLimit, typesOnly, filter, attributes);} @Override public SearchResultEntry searchForEntry(SearchRequest searchRequest) throws LDAPSearchException { return _delegateConnection.searchForEntry(searchRequest); } @Override public SearchResultEntry searchForEntry(ReadOnlySearchRequest searchRequest) throws LDAPSearchException { return _delegateConnection.searchForEntry(searchRequest); } // endregion }