package com.hwlcn.ldap.ldap.sdk; import javax.net.ssl.SSLContext; import com.hwlcn.ldap.asn1.ASN1StreamReader; import com.hwlcn.ldap.asn1.ASN1StreamReaderSequence; import com.hwlcn.ldap.ldap.protocol.LDAPMessage; import com.hwlcn.ldap.ldap.sdk.extensions.CancelExtendedRequest; import com.hwlcn.ldap.ldap.sdk.schema.Schema; import com.hwlcn.core.annotation.InternalUseOnly; import com.hwlcn.core.annotation.ThreadSafety; import com.hwlcn.ldap.util.ThreadSafetyLevel; @InternalUseOnly() @ThreadSafety(level=ThreadSafetyLevel.NOT_THREADSAFE) public final class InternalSDKHelper { private InternalSDKHelper() { } @InternalUseOnly() public static void setSoTimeout(final LDAPConnection connection, final int soTimeout) throws LDAPException { final LDAPConnectionReader connectionReader = connection.getConnectionInternals(true).getConnectionReader(); if (connectionReader != null) { connectionReader.setSoTimeout(soTimeout); } } @InternalUseOnly() public static void convertToTLS(final LDAPConnection connection, final SSLContext sslContext) throws LDAPException { connection.convertToTLS(sslContext); } @InternalUseOnly() public static AsyncRequestID createAsyncRequestID(final int targetMessageID, final LDAPConnection connection) { return new AsyncRequestID(targetMessageID, connection); } @InternalUseOnly() public static void cancel(final LDAPConnection connection, final int targetMessageID, final Control... controls) throws LDAPException { final CancelExtendedRequest cancelRequest = new CancelExtendedRequest(targetMessageID); connection.sendMessage(new LDAPMessage(connection.nextMessageID(), new ExtendedRequest(cancelRequest), controls)); } @InternalUseOnly() public static LDAPResult readLDAPResultFrom(final int messageID, final ASN1StreamReaderSequence messageSequence, final ASN1StreamReader reader) throws LDAPException { return LDAPResult.readLDAPResultFrom(messageID, messageSequence, reader); } @InternalUseOnly() public static BindResult readBindResultFrom(final int messageID, final ASN1StreamReaderSequence messageSequence, final ASN1StreamReader reader) throws LDAPException { return BindResult.readBindResultFrom(messageID, messageSequence, reader); } @InternalUseOnly() public static CompareResult readCompareResultFrom(final int messageID, final ASN1StreamReaderSequence messageSequence, final ASN1StreamReader reader) throws LDAPException { return CompareResult.readCompareResultFrom(messageID, messageSequence, reader); } @InternalUseOnly() public static ExtendedResult readExtendedResultFrom(final int messageID, final ASN1StreamReaderSequence messageSequence, final ASN1StreamReader reader) throws LDAPException { return ExtendedResult.readExtendedResultFrom(messageID, messageSequence, reader); } @InternalUseOnly() public static SearchResultEntry readSearchResultEntryFrom(final int messageID, final ASN1StreamReaderSequence messageSequence, final ASN1StreamReader reader, final Schema schema) throws LDAPException { return SearchResultEntry.readSearchEntryFrom(messageID, messageSequence, reader, schema); } @InternalUseOnly() public static SearchResultReference readSearchResultReferenceFrom( final int messageID, final ASN1StreamReaderSequence messageSequence, final ASN1StreamReader reader) throws LDAPException { return SearchResultReference.readSearchReferenceFrom(messageID, messageSequence, reader); } @InternalUseOnly() public static SearchResult readSearchResultFrom(final int messageID, final ASN1StreamReaderSequence messageSequence, final ASN1StreamReader reader) throws LDAPException { return SearchResult.readSearchResultFrom(messageID, messageSequence, reader); } @InternalUseOnly() public static IntermediateResponse readIntermediateResponseFrom( final int messageID, final ASN1StreamReaderSequence messageSequence, final ASN1StreamReader reader) throws LDAPException { return IntermediateResponse.readFrom(messageID, messageSequence, reader); } @InternalUseOnly() public static Boolean followReferralsInternal(final LDAPRequest request) { return request.followReferralsInternal(); } @InternalUseOnly() public static int nextMessageID(final LDAPConnection connection) { return connection.nextMessageID(); } @InternalUseOnly() public static BindRequest getLastBindRequest(final LDAPConnection connection) { return connection.getLastBindRequest(); } }