You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2009/08/23 12:29:42 UTC
svn commit: r806950 -
/directory/shared/trunk/client-api/src/main/java/org/apache/directory/shared/ldap/client/api/LdapConnection.java
Author: kayyagari
Date: Sun Aug 23 10:29:42 2009
New Revision: 806950
URL: http://svn.apache.org/viewvc?rev=806950&view=rev
Log:
added a method to convert ControlCodecs to Controls and set in the corresponding clientside AbstractMessage
Modified:
directory/shared/trunk/client-api/src/main/java/org/apache/directory/shared/ldap/client/api/LdapConnection.java
Modified: directory/shared/trunk/client-api/src/main/java/org/apache/directory/shared/ldap/client/api/LdapConnection.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/client-api/src/main/java/org/apache/directory/shared/ldap/client/api/LdapConnection.java?rev=806950&r1=806949&r2=806950&view=diff
==============================================================================
--- directory/shared/trunk/client-api/src/main/java/org/apache/directory/shared/ldap/client/api/LdapConnection.java (original)
+++ directory/shared/trunk/client-api/src/main/java/org/apache/directory/shared/ldap/client/api/LdapConnection.java Sun Aug 23 10:29:42 2009
@@ -57,6 +57,7 @@
import org.apache.directory.shared.ldap.client.api.listeners.OperationResponseListener;
import org.apache.directory.shared.ldap.client.api.listeners.SearchListener;
import org.apache.directory.shared.ldap.client.api.messages.AbandonRequest;
+import org.apache.directory.shared.ldap.client.api.messages.AbstractMessage;
import org.apache.directory.shared.ldap.client.api.messages.AddRequest;
import org.apache.directory.shared.ldap.client.api.messages.AddResponse;
import org.apache.directory.shared.ldap.client.api.messages.BindRequest;
@@ -297,6 +298,45 @@
/**
+ * converts the ControlCodec(s) present in LdapMessageCodec to BasicControl(s)
+ * and adds them to the corresponding client side message.
+ *
+ * @param codec the codec in which the <i>ControlCodec</i>s are present
+ * @param message the message to which the <i>Control</i>s needs to be added
+ */
+ private void copyControlsFromCodecToMessage( LdapMessageCodec codec, AbstractMessage message )
+ {
+ if( codec == null || message == null )
+ {
+ return;
+ }
+
+ List<ControlCodec> ctrlCodecList = codec.getControls();
+
+ if( ctrlCodecList != null )
+ {
+ for( ControlCodec ctrlCodec : ctrlCodecList )
+ {
+ if( ctrlCodec == null )
+ {
+ continue;
+ }
+
+ Control control = new BasicControl( ctrlCodec.getControlType(), ctrlCodec.getCriticality(), ctrlCodec.getEncodedValue() );
+ try
+ {
+ message.add( control );
+ }
+ catch( Exception e )
+ {
+ LOG.error( "Failed to add the control associated with SearchResultEntryCodec", e );
+ }
+ }
+ }
+ }
+
+
+ /**
* Get the smallest timeout from the client timeout and the connection
* timeout.
*/
@@ -327,7 +367,8 @@
bindResponse.setMessageId( bindResponseCodec.getMessageId() );
bindResponse.setServerSaslCreds( bindResponseCodec.getServerSaslCreds() );
bindResponse.setLdapResult( convert( bindResponseCodec.getLdapResult() ) );
-
+ copyControlsFromCodecToMessage( bindResponseCodec, bindResponse );
+
return bindResponse;
}
@@ -342,6 +383,7 @@
intermediateResponse.setMessageId( intermediateResponseCodec.getMessageId() );
intermediateResponse.setResponseName( intermediateResponseCodec.getResponseName() );
intermediateResponse.setResponseValue( intermediateResponseCodec.getResponseValue() );
+ copyControlsFromCodecToMessage( intermediateResponseCodec, intermediateResponse );
return intermediateResponse;
}
@@ -384,7 +426,8 @@
searchResultEntry.setMessageId( searchEntryResultCodec.getMessageId() );
searchResultEntry.setEntry( searchEntryResultCodec.getEntry() );
-
+ copyControlsFromCodecToMessage( searchEntryResultCodec, searchResultEntry );
+
return searchResultEntry;
}
@@ -398,6 +441,7 @@
searchResultDone.setMessageId( searchResultDoneCodec.getMessageId() );
searchResultDone.setLdapResult( convert( searchResultDoneCodec.getLdapResult() ) );
+ copyControlsFromCodecToMessage( searchResultDoneCodec, searchResultDone );
return searchResultDone;
}
@@ -424,7 +468,8 @@
}
searchResultReference.setReferral( referral );
-
+ copyControlsFromCodecToMessage( searchEntryReferenceCodec, searchResultReference );
+
return searchResultReference;
}
@@ -771,6 +816,7 @@
addResponse.setMessageId( addRespCodec.getMessageId() );
addResponse.setLdapResult( convert( addRespCodec.getLdapResult() ) );
+ copyControlsFromCodecToMessage( addRespCodec, addResponse );
return addResponse;
}
@@ -1824,7 +1870,8 @@
modResponse.setMessageId( modRespCodec.getMessageId() );
modResponse.setLdapResult( convert( modRespCodec.getLdapResult() ) );
-
+ copyControlsFromCodecToMessage( modRespCodec, modResponse );
+
return modResponse;
}
@@ -2008,6 +2055,7 @@
modDnResponse.setMessageId( modDnRespCodec.getMessageId() );
modDnResponse.setLdapResult( convert( modDnRespCodec.getLdapResult() ) );
+ copyControlsFromCodecToMessage( modDnRespCodec, modDnResponse );
return modDnResponse;
}
@@ -2521,6 +2569,7 @@
compareResponse.setMessageId( compareRespCodec.getMessageId() );
compareResponse.setLdapResult( convert( compareRespCodec.getLdapResult() ) );
+ copyControlsFromCodecToMessage( compareRespCodec, compareResponse );
return compareResponse;
}
@@ -2535,6 +2584,7 @@
response.setMessageId( delRespCodec.getMessageId() );
response.setLdapResult( convert( delRespCodec.getLdapResult() ) );
+ copyControlsFromCodecToMessage( delRespCodec, response );
return response;
}
@@ -2695,6 +2745,7 @@
extResponse.setValue( extRespCodec.getResponse() );
extResponse.setMessageId( extRespCodec.getMessageId() );
extResponse.setLdapResult( convert( extRespCodec.getLdapResult() ) );
+ copyControlsFromCodecToMessage( extRespCodec, extResponse );
return extResponse;
}