You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2004/08/16 04:22:21 UTC
svn commit: rev 36428 - in incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src: java/org/apache/snickers/ldap/encoder test/org/apache/snickers/ldap/encoder/abandon
Author: akarasulu
Date: Sun Aug 15 19:22:21 2004
New Revision: 36428
Removed:
incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/test/org/apache/snickers/ldap/encoder/abandon/AbandonRequestEncoderTest.java
Modified:
incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/EncoderUtils.java
incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/LdapResultEncoder.java
incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/SnickersLdapEncoder.java
Log:
no longer needed
Modified: incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/EncoderUtils.java
==============================================================================
--- incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/EncoderUtils.java (original)
+++ incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/EncoderUtils.java Sun Aug 15 19:22:21 2004
@@ -16,9 +16,8 @@
*/
package org.apache.snickers.ldap.encoder;
-import org.apache.snickers.ber.TupleEventConsumer;
-import org.apache.snickers.ber.TagEnum;
-import org.apache.snickers.ber.Tuple;
+
+import org.apache.snickers.ber.*;
import org.apache.snickers.ber.primitives.UniversalTag;
import org.apache.snickers.ber.primitives.PrimitiveUtils;
@@ -26,77 +25,105 @@
/**
- * Common utilities used by encoders.
+ * Common utilities used by encoders for encoding primitive types into
+ * TupleNodes.
*
* @author <a href="mailto:directory-dev@incubator.apache.org"> Apache Directory
* Project</a> $Rev$
*/
public class EncoderUtils
{
- public static void encodePrimitive( String octets,
- TupleEventConsumer consumer )
+ /**
+ * Encodes a Java String into a TupleNode. The tag of the Tuple contained
+ * within the returned TupleNode defaults to a UNIVERSAL OCTET_STRING.
+ *
+ * @param octets the String value to encode
+ * @return the TupleNode containing the Tuple for the integer value
+ */
+ public static TupleNode encode( String octets )
{
- encodePrimitive( UniversalTag.OCTET_STRING, octets, consumer );
+ return encode( UniversalTag.OCTET_STRING, octets );
}
- public static void encodePrimitive( TagEnum tag, String octets,
- TupleEventConsumer consumer )
+ /**
+ * Encodes a Java String into a TupleNode.
+ *
+ * @param tag the tag enumeration to use for the Tuple
+ * @param octets the String value to encode
+ * @return the TupleNode containing the Tuple for the integer value
+ */
+ public static TupleNode encode( TagEnum tag, String octets )
{
Tuple t = new Tuple();
t.setTag( tag, true );
- consumer.tag( t );
ByteBuffer chunk = ByteBuffer.wrap( octets.getBytes() );
t.setLength( chunk.remaining() );
- consumer.length( t );
t.setLastValueChunk( chunk );
- consumer.chunkedValue( t, chunk );
- consumer.finish( t );
+ return new DefaultMutableTupleNode( t );
}
- public static void encodePrimitive( int intval,
- TupleEventConsumer consumer )
+ /**
+ * Encodes a primitive Java integer into a TupleNode. The tag of the Tuple
+ * contained within the returned TupleNode defaults to a UNIVERSAL INTEGER.
+ *
+ * @param intval the integer value to encode
+ * @return the TupleNode containing the Tuple for the integer value
+ */
+ public static TupleNode encode( int intval )
{
- encodePrimitive( UniversalTag.INTEGER, intval, consumer );
+ return encode( UniversalTag.INTEGER, intval );
}
- public static void encodePrimitive( TagEnum tag, int intval,
- TupleEventConsumer consumer )
+ /**
+ * Encodes a primitive Java integer into a TupleNode.
+ *
+ * @param tag the tag enumeration to use for the Tuple
+ * @param intval the integer value to encode
+ * @return the TupleNode containing the Tuple for the integer value
+ */
+ public static TupleNode encode( TagEnum tag, int intval )
{
Tuple t = new Tuple();
t.setTag( tag, true );
- consumer.tag( t );
ByteBuffer chunk = ByteBuffer.wrap(
PrimitiveUtils.encodeInt( intval ) );
t.setLength( chunk.remaining() );
- consumer.length( t );
t.setLastValueChunk( chunk );
- consumer.chunkedValue( t, chunk );
- consumer.finish( t );
+ return new DefaultMutableTupleNode( t );
}
- public static void encodePrimitive( boolean bool,
- TupleEventConsumer consumer )
+ /**
+ * Encodes a boolean value into a TupleNode. The tag defaults in this case
+ * to a UNIVERSAL BOOLEAN.
+ *
+ * @param bool the true or false value to encode
+ * @return the TupleNode containing the Tuple for the boolean value
+ */
+ public static TupleNode encode( boolean bool )
{
- encodePrimitive( UniversalTag.BOOLEAN, bool, consumer );
+ return encode( UniversalTag.BOOLEAN, bool );
}
- public static void encodePrimitive( TagEnum tag, boolean bool,
- TupleEventConsumer consumer )
+ /**
+ * Encodes a boolean value into a TupleNode.
+ *
+ * @param tag the tag used for the boolean value
+ * @param bool the boolean value
+ * @return the TupleNode containing the Tuple for the boolean value
+ */
+ public static TupleNode encode( TagEnum tag, boolean bool )
{
Tuple t = new Tuple();
t.setTag( tag, true );
- consumer.tag( t );
ByteBuffer chunk = ByteBuffer.wrap(
PrimitiveUtils.encodeBoolean( bool ) );
t.setLength( chunk.remaining() );
- consumer.length( t );
t.setLastValueChunk( chunk );
- consumer.chunkedValue( t, chunk );
- consumer.finish( t );
+ return new DefaultMutableTupleNode( t );
}
}
Modified: incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/LdapResultEncoder.java
==============================================================================
--- incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/LdapResultEncoder.java (original)
+++ incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/LdapResultEncoder.java Sun Aug 15 19:22:21 2004
@@ -16,181 +16,47 @@
*/
package org.apache.snickers.ldap.encoder;
+
import org.apache.snickers.ber.*;
import org.apache.snickers.ber.primitives.UniversalTag;
-import org.apache.snickers.ber.primitives.PrimitiveUtils;
-import org.apache.snickers.ldap.LdapTag;
import org.apache.ldap.common.message.LdapResult;
-import org.apache.ldap.common.message.ResultCodeEnum;
-import org.apache.ldap.common.message.Referral;
-
-import java.nio.ByteBuffer;
-import java.util.Iterator;
-import java.util.ArrayList;
/**
- * Encodes the elements of an LdapResult into some top level tuple.
+ * Encodes the elements of an LdapResult as TLV tuples into a top level tuple
+ * node.
*
* @author <a href="mailto:directory-dev@incubator.apache.org"> Apache Directory
* Project</a> $Rev$
*/
-public class LdapResultEncoder implements TupleEventProducer
+public class LdapResultEncoder
{
- TupleEventConsumer consumer = null;
- Tuple tmp = new Tuple();
-
-
- public void attach( TupleEventConsumer consumer )
- {
- this.consumer = consumer;
- }
-
-
- public void encode( LdapResult result )
- {
- // Encode the result code
- tmp.setTag( UniversalTag.ENUMERATED, true );
- ByteBuffer chunk = ByteBuffer.wrap( PrimitiveUtils
- .encodeInt( result.getResultCode().getValue() ) ) ;
- consumer.tag( tmp );
- tmp.setLength( 1 );
- consumer.length( tmp );
- tmp.setLastValueChunk( chunk );
- consumer.chunkedValue( tmp, chunk );
- consumer.finish( tmp );
-
- // Encode the matchedDN
- tmp.setTag( UniversalTag.OCTET_STRING, true );
- chunk = ByteBuffer.wrap( result.getMatchedDn().getBytes() );
- consumer.tag( tmp );
- tmp.setLength( chunk.remaining() );
- consumer.length( tmp );
- tmp.setLastValueChunk( chunk );
- consumer.chunkedValue( tmp, chunk );
- consumer.finish( tmp );
-
- // Encode the errorMsg
- tmp.setTag( UniversalTag.OCTET_STRING, true );
- chunk = ByteBuffer.wrap( result.getErrorMessage().getBytes() );
- consumer.tag( tmp );
- tmp.setLength( chunk.remaining() );
- consumer.length( tmp );
- tmp.setLastValueChunk( chunk );
- consumer.chunkedValue( tmp, chunk );
- consumer.finish( tmp );
-
- if ( result.getReferral() != null &&
- result.getReferral().getLdapUrls().size() > 0 )
- {
- Tuple referrals = new Tuple();
- referrals.setTag( LdapTag.REFERRAL_TAG, false );
- consumer.tag( referrals );
- referrals.setLength( Length.INDEFINATE );
- consumer.length( referrals );
-
- Iterator list = result.getReferral().getLdapUrls().iterator();
- while( list.hasNext() )
- {
- tmp.setTag( UniversalTag.OCTET_STRING, true );
- consumer.tag( tmp );
- chunk = ByteBuffer.wrap( ( (String) list.next() ).getBytes() );
- tmp.setLength( chunk.remaining() );
- consumer.length( tmp );
- tmp.setLastValueChunk( chunk );
- consumer.chunkedValue( tmp, chunk );
- consumer.finish( tmp );
- }
-
- consumer.finish( referrals );
- }
- }
-
+ /**
+ * An instance of this encoder.
+ */
+ public static final LdapResultEncoder INSTANCE = new LdapResultEncoder();
/**
* Encodes an LdapResult fields into TupleNodes adding them to the top
- * argument.
+ * argument. This method is thread safe.
*
* @param top the topmost node to add LDAP result fields to
* @param result the ldap result to encode
*/
public void encode( DefaultMutableTupleNode top, LdapResult result )
{
- encodeResultCode( top, result.getResultCode() );
- encodeMatchedDn( top, result.getMatchedDn() );
- encodeErrorMsg( top, result.getErrorMessage() );
+ top.addLast( ( DefaultMutableTupleNode ) EncoderUtils.encode(
+ UniversalTag.ENUMERATED, result.getResultCode().getValue() ) );
+ top.addLast( ( DefaultMutableTupleNode ) EncoderUtils.encode(
+ result.getMatchedDn() ) );
+ top.addLast( ( DefaultMutableTupleNode ) EncoderUtils.encode(
+ result.getErrorMessage() ) );
if ( result.getReferral() != null &&
result.getReferral().getLdapUrls().size() > 0 )
{
- encodeReferral( top, result.getReferral() );
- }
-
- }
-
-
- private void encodeResultCode( DefaultMutableTupleNode top,
- ResultCodeEnum resultCode )
- {
- Tuple tlv = new Tuple();
- tlv.setTag( UniversalTag.ENUMERATED, true );
- ByteBuffer chunk = ByteBuffer.wrap( PrimitiveUtils
- .encodeInt( resultCode.getValue() ) ) ;
- tlv.setLength( 1 );
- tlv.setLastValueChunk( chunk );
- ArrayList list = new ArrayList(1);
- list.add( chunk );
- top.addLast( new DefaultMutableTupleNode( tlv, list ) );
- }
-
-
- private void encodeMatchedDn( DefaultMutableTupleNode top, String dn )
- {
- Tuple tlv = new Tuple();
- tlv.setTag( UniversalTag.OCTET_STRING, true );
- ByteBuffer chunk = ByteBuffer.wrap( dn.getBytes() );
- tlv.setLength( chunk.remaining() );
- tlv.setLastValueChunk( chunk );
- ArrayList list = new ArrayList(1);
- list.add( chunk );
- top.addLast( new DefaultMutableTupleNode( tlv, list ) );
- }
-
-
- private void encodeErrorMsg( DefaultMutableTupleNode top, String msg )
- {
- Tuple tlv = new Tuple();
- tlv.setTag( UniversalTag.OCTET_STRING, true );
- ByteBuffer chunk = ByteBuffer.wrap( msg.getBytes() );
- tlv.setLength( chunk.remaining() );
- tlv.setLastValueChunk( chunk );
- ArrayList list = new ArrayList(1);
- list.add( chunk );
- top.addLast( new DefaultMutableTupleNode( tlv, list ) );
- }
-
-
- private void encodeReferral( DefaultMutableTupleNode top, Referral ref )
- {
- Tuple referrals = new Tuple();
- referrals.setTag( LdapTag.REFERRAL_TAG, false );
- referrals.setLength( Length.INDEFINATE );
- DefaultMutableTupleNode refs = new DefaultMutableTupleNode( referrals );
-
- Iterator list = ref.getLdapUrls().iterator();
- while( list.hasNext() )
- {
- Tuple tlv = new Tuple();
- tlv.setTag( UniversalTag.OCTET_STRING, true );
- ByteBuffer chunk =
- ByteBuffer.wrap( ( ( String ) list.next()).getBytes() );
- tlv.setLength( chunk.remaining() );
- tlv.setLastValueChunk( chunk );
- ArrayList values = new ArrayList(1);
- values.add( chunk );
- refs.addLast( new DefaultMutableTupleNode( tlv, values ) );
+ top.addLast( ( DefaultMutableTupleNode )
+ ReferralEncoder.INSTANCE.encode( result.getReferral() ) );
}
-
- top.addLast( refs );
}
}
Modified: incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/SnickersLdapEncoder.java
==============================================================================
--- incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/SnickersLdapEncoder.java (original)
+++ incubator/directory/snickers/branches/encoder-redesign/ldap-ber-provider/src/java/org/apache/snickers/ldap/encoder/SnickersLdapEncoder.java Sun Aug 15 19:22:21 2004
@@ -22,12 +22,6 @@
import org.apache.commons.codec.stateful.EncoderCallback;
import org.apache.commons.codec.stateful.EncoderMonitor;
import org.apache.ldap.common.message.*;
-import org.apache.snickers.ldap.encoder.abandon.AbandonRequestEncoder;
-import org.apache.snickers.ldap.encoder.bind.BindRequestEncoder;
-import org.apache.snickers.ldap.encoder.bind.BindResponseEncoder;
-import org.apache.snickers.ldap.encoder.search.SearchRequestEncoder;
-import org.apache.snickers.ldap.encoder.search.SearchResponseDoneEncoder;
-import org.apache.snickers.ldap.encoder.search.SearchResponseEntryEncoder;
import org.apache.snickers.ber.BEREncoder;
@@ -41,13 +35,6 @@
*/
public class SnickersLdapEncoder implements StatefulEncoder
{
- AbandonRequestEncoder abandonReqEncoder = null;
- BindRequestEncoder bindReqEncoder = null;
- BindResponseEncoder bindRespEncoder = null;
- SearchRequestEncoder searchReqEncoder = null;
- SearchResponseDoneEncoder searchRespDoneEncoder = null;
- SearchResponseEntryEncoder searchRespEntryEncoder = null;
-
EncoderMonitor monitor;
BEREncoder encoder = new BEREncoder();
@@ -60,57 +47,21 @@
switch( msg.getType().getValue() )
{
case( MessageTypeEnum.ABANDONREQUEST_VAL ):
- if ( abandonReqEncoder == null )
- {
- abandonReqEncoder = new AbandonRequestEncoder();
- }
- abandonReqEncoder.attach( encoder );
- abandonReqEncoder.encode( ( AbandonRequest ) obj );
break;
case( MessageTypeEnum.BINDREQUEST_VAL ):
- if ( bindReqEncoder == null )
- {
- bindReqEncoder = new BindRequestEncoder();
- }
- bindReqEncoder.attach( encoder );
- bindReqEncoder.encode( ( BindRequest ) obj );
break;
case( MessageTypeEnum.BINDRESPONSE_VAL ):
- if ( bindRespEncoder == null )
- {
- bindRespEncoder = new BindResponseEncoder();
- }
- bindRespEncoder.attach( encoder );
- bindRespEncoder.encode( ( BindResponse ) obj );
break;
case( MessageTypeEnum.SEARCHREQUEST_VAL ):
- if ( searchReqEncoder == null )
- {
- searchReqEncoder = new SearchRequestEncoder();
- }
- searchReqEncoder.attach( encoder );
- searchReqEncoder.encode( ( SearchRequest ) obj );
break;
case( MessageTypeEnum.SEARCHRESDONE_VAL ):
- if ( searchRespDoneEncoder == null )
- {
- searchRespDoneEncoder = new SearchResponseDoneEncoder();
- }
- searchRespDoneEncoder.attach( encoder );
- searchRespDoneEncoder.encode( ( SearchResponseDone ) obj );
break;
case( MessageTypeEnum.SEARCHRESENTRY_VAL ):
- if ( searchRespEntryEncoder == null )
- {
- searchRespEntryEncoder = new SearchResponseEntryEncoder();
- }
- searchRespEntryEncoder.attach( encoder );
- searchRespEntryEncoder.encode( ( SearchResponseEntry ) obj );
break;
default: