directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From elecha...@apache.org
Subject svn commit: r452497 [5/9] - in /directory/trunks/shared/ldap/src: main/java/org/apache/directory/shared/ldap/codec/ main/java/org/apache/directory/shared/ldap/codec/abandon/ main/java/org/apache/directory/shared/ldap/codec/add/ main/java/org/apache/dir...
Date Tue, 03 Oct 2006 13:49:46 GMT
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java Tue Oct  3 06:49:43 2006
@@ -66,8 +66,6 @@
 import org.apache.directory.shared.ldap.codec.search.SubstringFilter;
 import org.apache.directory.shared.ldap.codec.search.controls.PSearchControl;
 import org.apache.directory.shared.ldap.codec.search.controls.SubEntryControl;
-import org.apache.directory.shared.ldap.codec.util.LdapString;
-import org.apache.directory.shared.ldap.codec.util.LdapStringEncodingException;
 import org.apache.directory.shared.ldap.codec.util.LdapURL;
 import org.apache.directory.shared.ldap.codec.util.LdapURLEncodingException;
 import org.apache.directory.shared.ldap.filter.AbstractExprNode;
@@ -109,7 +107,6 @@
 import org.apache.directory.shared.ldap.message.SubentriesControl;
 import org.apache.directory.shared.ldap.message.UnbindRequestImpl;
 import org.apache.directory.shared.ldap.message.extended.GracefulShutdownRequest;
-import org.apache.directory.shared.ldap.message.extended.StoredProcedureRequest;
 import org.apache.directory.shared.ldap.message.spi.Provider;
 import org.apache.directory.shared.ldap.message.spi.TransformerSpi;
 import org.slf4j.Logger;
@@ -137,8 +134,7 @@
     /**
      * Creates a passthrough transformer that really does nothing at all.
      * 
-     * @param provider
-     *            the povider for this transformer
+     * @param provider the provider for this transformer
      */
     public TwixTransformer(Provider provider)
     {
@@ -161,10 +157,8 @@
      * Transform an AbandonRequest message from a TwixMessage to a
      * SnickersMessage
      * 
-     * @param twixMessage
-     *            The message to transform
-     * @param messageId
-     *            The message Id
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
      * @return A Snickers AbandonRequestImpl
      */
     private Message transformAbandonRequest( LdapMessage twixMessage, int messageId )
@@ -182,10 +176,8 @@
     /**
      * Transform an AddRequest message from a TwixMessage to a SnickersMessage
      * 
-     * @param twixMessage
-     *            The message to transform
-     * @param messageId
-     *            The message Id
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
      * @return A Snickers AddRequestImpl
      */
     private Message transformAddRequest( LdapMessage twixMessage, int messageId )
@@ -206,10 +198,8 @@
     /**
      * Transform a BindRequest message from a TwixMessage to a SnickersMessage
      * 
-     * @param twixMessage
-     *            The message to transform
-     * @param messageId
-     *            The message Id
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
      * @return A Snickers BindRequestImpl
      */
     private Message transformBindRequest( LdapMessage twixMessage, int messageId )
@@ -249,10 +239,8 @@
      * Transform a CompareRequest message from a TwixMessage to a
      * SnickersMessage
      * 
-     * @param twixMessage
-     *            The message to transform
-     * @param messageId
-     *            The message Id
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
      * @return A Snickers CompareRequestImpl
      */
     private Message transformCompareRequest( LdapMessage twixMessage, int messageId )
@@ -283,10 +271,8 @@
     /**
      * Transform a DelRequest message from a TwixMessage to a SnickersMessage
      * 
-     * @param twixMessage
-     *            The message to transform
-     * @param messageId
-     *            The message Id
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
      * @return A Snickers DeleteRequestImpl
      */
     private Message transformDelRequest( LdapMessage twixMessage, int messageId )
@@ -305,10 +291,8 @@
      * Transform an ExtendedRequest message from a TwixMessage to a
      * SnickersMessage
      * 
-     * @param twixMessage
-     *            The message to transform
-     * @param messageId
-     *            The message Id
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
      * @return A Snickers ExtendedRequestImpl
      */
     private Message transformExtendedRequest( LdapMessage twixMessage, int messageId )
@@ -320,10 +304,6 @@
         {
             snickersMessage = new GracefulShutdownRequest( messageId );
         }
-        else if ( extendedRequest.getRequestName().equals( StoredProcedureRequest.EXTENSION_OID ) )
-        {
-            snickersMessage = new StoredProcedureRequest( messageId );
-        }
         else
         {
             snickersMessage = new ExtendedRequestImpl( messageId );
@@ -343,10 +323,8 @@
      * Transform a ModifyDNRequest message from a TwixMessage to a
      * SnickersMessage
      * 
-     * @param twixMessage
-     *            The message to transform
-     * @param messageId
-     *            The message Id
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
      * @return A Snickers ModifyDNRequestImpl
      */
     private Message transformModifyDNRequest( LdapMessage twixMessage, int messageId )
@@ -373,10 +351,8 @@
     /**
      * Transform a ModifyRequest message from a TwixMessage to a SnickersMessage
      * 
-     * @param twixMessage
-     *            The message to transform
-     * @param messageId
-     *            The message Id
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
      * @return A Snickers ModifyRequestImpl
      */
     private Message transformModifyRequest( LdapMessage twixMessage, int messageId )
@@ -406,8 +382,7 @@
     /**
      * Transform the Filter part of a SearchRequest to en ExprNode
      * 
-     * @param twixFilter
-     *            The filter to be transformed
+     * @param twixFilter The filter to be transformed
      * @return An ExprNode
      */
     private ExprNode transformFilter( Filter twixFilter )
@@ -476,7 +451,7 @@
                                     (byte[])ava.getAssertionValue(), 
                                     AbstractExprNode.EQUALITY );
                             }
-
+                            
                             break;
 
                         case LdapConstants.GREATER_OR_EQUAL_FILTER:
@@ -610,10 +585,8 @@
     /**
      * Transform a SearchRequest message from a TwixMessage to a SnickersMessage
      * 
-     * @param twixMessage
-     *            The message to transform
-     * @param messageId
-     *            The message Id
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
      * @return A Snickers SearchRequestImpl
      */
     private Message transformSearchRequest( LdapMessage twixMessage, int messageId )
@@ -701,10 +674,8 @@
      * Transform an UnBindRequest message from a TwixMessage to a
      * SnickersMessage
      * 
-     * @param twixMessage
-     *            The message to transform
-     * @param messageId
-     *            The message Id
+     * @param twixMessage The message to transform
+     * @param messageId The message Id
      * @return A Snickers UnBindRequestImpl
      */
     private Message transformUnBindRequest( LdapMessage twixMessage, int messageId )
@@ -716,8 +687,7 @@
     /**
      * Transform the Twix message to a codec neutral message.
      * 
-     * @param obj
-     *            the object to transform
+     * @param obj the object to transform
      * @return the object transformed
      */
     public Message transform( Object obj )
@@ -890,8 +860,7 @@
     /**
      * Transform a Ldapresult part of a Snickers Response to a Twix LdapResult
      * 
-     * @param snickersLdapResult
-     *            The Snickers LdapResult to transform
+     * @param snickersLdapResult The Snickers LdapResult to transform
      * @return A Twix LdapResult
      */
     private LdapResult transformLdapResult( LdapResultImpl snickersLdapResult )
@@ -902,24 +871,15 @@
         twixLdapResult.setResultCode( snickersLdapResult.getResultCode().getValue() );
 
         // Snickers : String errorMessage -> Twix : LdapString errorMessage
-        try
-        {
-            String errorMessage = snickersLdapResult.getErrorMessage();
+        String errorMessage = snickersLdapResult.getErrorMessage();
 
-            if ( ( errorMessage == null ) || ( errorMessage.length() == 0 ) )
-            {
-                twixLdapResult.setErrorMessage( LdapString.EMPTY_STRING );
-            }
-            else
-            {
-                twixLdapResult.setErrorMessage( new LdapString( snickersLdapResult.getErrorMessage().getBytes() ) );
-            }
+        if ( ( errorMessage == null ) || ( errorMessage.length() == 0 ) )
+        {
+            twixLdapResult.setErrorMessage( "" );
         }
-        catch ( LdapStringEncodingException lsee )
+        else
         {
-            log.warn( "The error message " + snickersLdapResult.getErrorMessage() + " is invalid : "
-                + lsee.getMessage() );
-            twixLdapResult.setErrorMessage( LdapString.EMPTY_STRING );
+            twixLdapResult.setErrorMessage( new String( snickersLdapResult.getErrorMessage().getBytes() ) );
         }
 
         // Snickers : String matchedDn -> Twix : LdapDN matchedDN
@@ -931,6 +891,7 @@
         if ( snisckersReferrals != null )
         {
             Iterator referrals = snisckersReferrals.getLdapUrls().iterator();
+            twixLdapResult.initReferrals();
 
             while ( referrals.hasNext() )
             {
@@ -956,10 +917,8 @@
     /**
      * Transform a Snickers AddResponse to a Twix AddResponse
      * 
-     * @param twixMessage
-     *            The Twix AddResponse to produce
-     * @param snickersMessage
-     *            The incoming Snickers AddResponse
+     * @param twixMessage The Twix AddResponse to produce
+     * @param snickersMessage The incoming Snickers AddResponse
      */
     private void transformAddResponse( LdapMessage twixMessage, Message snickersMessage )
     {
@@ -978,10 +937,8 @@
     /**
      * Transform a Snickers BindResponse to a Twix BindResponse
      * 
-     * @param twixMessage
-     *            The Twix BindResponse to produce
-     * @param snickersMessage
-     *            The incoming Snickers BindResponse
+     * @param twixMessage The Twix BindResponse to produce
+     * @param snickersMessage The incoming Snickers BindResponse
      */
     private void transformBindResponse( LdapMessage twixMessage, Message snickersMessage )
     {
@@ -1009,10 +966,8 @@
     /**
      * Transform a Snickers CompareResponse to a Twix CompareResponse
      * 
-     * @param twixMessage
-     *            The Twix CompareResponse to produce
-     * @param snickersMessage
-     *            The incoming Snickers CompareResponse
+     * @param twixMessage The Twix CompareResponse to produce
+     * @param snickersMessage The incoming Snickers CompareResponse
      */
     private void transformCompareResponse( LdapMessage twixMessage, Message snickersMessage )
     {
@@ -1032,10 +987,8 @@
     /**
      * Transform a Snickers DelResponse to a Twix DelResponse
      * 
-     * @param twixMessage
-     *            The Twix DelResponse to produce
-     * @param snickersMessage
-     *            The incoming Snickers DelResponse
+     * @param twixMessage The Twix DelResponse to produce
+     * @param snickersMessage The incoming Snickers DelResponse
      */
     private void transformDelResponse( LdapMessage twixMessage, Message snickersMessage )
     {
@@ -1054,10 +1007,8 @@
     /**
      * Transform a Snickers ExtendedResponse to a Twix ExtendedResponse
      * 
-     * @param twixMessage
-     *            The Twix ExtendedResponse to produce
-     * @param snickersMessage
-     *            The incoming Snickers ExtendedResponse
+     * @param twixMessage The Twix ExtendedResponse to produce
+     * @param snickersMessage The incoming Snickers ExtendedResponse
      */
     private void transformExtendedResponse( LdapMessage twixMessage, Message snickersMessage )
     {
@@ -1090,10 +1041,8 @@
     /**
      * Transform a Snickers ModifyResponse to a Twix ModifyResponse
      * 
-     * @param twixMessage
-     *            The Twix ModifyResponse to produce
-     * @param snickersMessage
-     *            The incoming Snickers ModifyResponse
+     * @param twixMessage The Twix ModifyResponse to produce
+     * @param snickersMessage The incoming Snickers ModifyResponse
      */
     private void transformModifyResponse( LdapMessage twixMessage, Message snickersMessage )
     {
@@ -1112,10 +1061,8 @@
     /**
      * Transform a Snickers ModifyDNResponse to a Twix ModifyDNResponse
      * 
-     * @param twixMessage
-     *            The Twix ModifyDNResponse to produce
-     * @param snickersMessage
-     *            The incoming Snickers ModifyDNResponse
+     * @param twixMessage The Twix ModifyDNResponse to produce
+     * @param snickersMessage The incoming Snickers ModifyDNResponse
      */
     private void transformModifyDNResponse( LdapMessage twixMessage, Message snickersMessage )
     {
@@ -1135,10 +1082,8 @@
     /**
      * Transform a Snickers SearchResponseDone to a Twix SearchResultDone
      * 
-     * @param twixMessage
-     *            The Twix SearchResultDone to produce
-     * @param snickersMessage
-     *            The incoming Snickers SearchResponseDone
+     * @param twixMessage The Twix SearchResultDone to produce
+     * @param snickersMessage The incoming Snickers SearchResponseDone
      */
     private void transformSearchResultDone( LdapMessage twixMessage, Message snickersMessage )
     {
@@ -1157,10 +1102,8 @@
     /**
      * Transform a Snickers SearchResponseEntry to a Twix SearchResultEntry
      * 
-     * @param twixMessage
-     *            The Twix SearchResultEntry to produce
-     * @param snickersMessage
-     *            The incoming Snickers SearchResponseEntry
+     * @param twixMessage The Twix SearchResultEntry to produce
+     * @param snickersMessage The incoming Snickers SearchResponseEntry
      */
     private void transformSearchResultEntry( LdapMessage twixMessage, Message snickersMessage )
     {
@@ -1183,10 +1126,8 @@
      * Transform a Snickers SearchResponseReference to a Twix
      * SearchResultReference
      * 
-     * @param twixMessage
-     *            The Twix SearchResultReference to produce
-     * @param snickersMessage
-     *            The incoming Snickers SearchResponseReference
+     * @param twixMessage The Twix SearchResultReference to produce
+     * @param snickersMessage The incoming Snickers SearchResponseReference
      */
     private void transformSearchResultReference( LdapMessage twixMessage, Message snickersMessage )
     {
@@ -1230,8 +1171,7 @@
     /**
      * Transform the Snickers message to a Twix message.
      * 
-     * @param msg
-     *            the message to transform
+     * @param msg the message to transform
      * @return the msg transformed
      */
     public Object transform( Message msg )
@@ -1300,8 +1240,12 @@
         return twixMessage;
     }
 
-
-    private void transformControls( org.apache.directory.shared.ldap.codec.LdapMessage twixMessage, Message msg )
+    /**
+     * Transforms the controls
+     * @param twixMessage The Twix SearchResultReference to produce
+     * @param msg The incoming Snickers SearchResponseReference
+     */
+    private void transformControls( LdapMessage twixMessage, Message msg )
     {
         Iterator list = msg.getControls().values().iterator();
         while ( list.hasNext() )
@@ -1312,14 +1256,7 @@
             twixControl.setCriticality( control.isCritical() );
             twixControl.setControlValue( control.getEncodedValue() );
             twixControl.setEncodedValue( control.getEncodedValue() );
-            try
-            {
-                twixControl.setControlType( new LdapString( Asn1StringUtils.getBytesUtf8( control.getID() ) ) );
-            }
-            catch ( LdapStringEncodingException e )
-            {
-                log.error( "failed to encode string for control id", e );
-            }
+            twixControl.setControlType( new String( Asn1StringUtils.getBytesUtf8( control.getID() ) ) );
             twixControl.setParent( twixMessage );
         }
     }

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/abandon/AbandonRequest.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/abandon/AbandonRequest.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/abandon/AbandonRequest.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/abandon/AbandonRequest.java Tue Oct  3 06:49:43 2006
@@ -32,9 +32,14 @@
 
 
 /**
- * A AbandonRequest Message. Its syntax is : AbandonRequest ::= [APPLICATION 16]
- * MessageID MessageID ::= INTEGER (0 .. maxInt) maxInt INTEGER ::= 2147483647 --
- * (2^^31 - 1) --
+ * A AbandonRequest Message. 
+ * 
+ * Its syntax is : 
+ * AbandonRequest ::= [APPLICATION 16] MessageID 
+ * 
+ * MessageID ::= INTEGER (0 .. maxInt) 
+ * 
+ * maxInt INTEGER ::= 2147483647 -- (2^^31 - 1) --
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -93,8 +98,7 @@
     /**
      * Set the abandoned message ID
      * 
-     * @param abandonedMessageId
-     *            The abandoned messageID to set.
+     * @param abandonedMessageId The abandoned messageID to set.
      */
     public void setAbandonedMessageId( int abandonedMessageId )
     {
@@ -103,9 +107,12 @@
 
 
     /**
-     * Compute the AbandonRequest length AbandonRequest : 0x50 0x0(1..4)
-     * abandoned MessageId Length(AbandonRequest) = Length(0x50) + 1 +
-     * Length(abandoned MessageId)
+     * Compute the AbandonRequest length 
+     * 
+     * AbandonRequest : 
+     * 0x50 0x0(1..4) abandoned MessageId 
+     * 
+     * Length(AbandonRequest) = Length(0x50) + 1 + Length(abandoned MessageId)
      */
     public int computeLength()
     {
@@ -123,8 +130,7 @@
     /**
      * Encode the AbandonRequest message to a PDU.
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/add/AddRequest.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/add/AddRequest.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/add/AddRequest.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/add/AddRequest.java Tue Oct  3 06:49:43 2006
@@ -20,13 +20,12 @@
 package org.apache.directory.shared.ldap.codec.add;
 
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.ber.tlv.UniversalTag;
 import org.apache.directory.shared.asn1.ber.tlv.Value;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
 import org.apache.directory.shared.ldap.codec.LdapMessage;
-import org.apache.directory.shared.ldap.codec.util.LdapString;
 import org.apache.directory.shared.ldap.name.LdapDN;
 import org.apache.directory.shared.ldap.util.AttributeUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
@@ -48,10 +47,16 @@
 
 
 /**
- * An AddRequest Message. Its syntax is : AddRequest ::= [APPLICATION 8]
- * SEQUENCE { entry LDAPDN, attributes AttributeList } AttributeList ::=
- * SEQUENCE OF SEQUENCE { type AttributeDescription, vals SET OF AttributeValue }
- * AttributeValue ::= OCTET STRING
+ * An AddRequest Message. Its syntax is : 
+ *   AddRequest ::= [APPLICATION 8] SEQUENCE {
+ *              entry           LDAPDN,
+ *              attributes      AttributeList }
+ *
+ *   AttributeList ::= SEQUENCE OF SEQUENCE {
+ *              type    AttributeDescription,
+ *              vals    SET OF AttributeValue }
+ * 
+ *   AttributeValue ::= OCTET STRING
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -136,32 +141,10 @@
         return attributes;
     }
 
-
-    /**
-     * Create a new attributeValue
-     * 
-     * @param type
-     *            The attribute's name (called 'type' in the grammar)
-     */
-    public void addAttributeType( LdapString type )
-    {
-        // do not create a new attribute if we have seen this attributeType before
-        if ( attributes.get( type.toString().toLowerCase() ) != null )
-        {
-            currentAttribute = attributes.get( type.toString().toLowerCase() );
-            return;
-        }
-        
-        // fix this to use LockableAttributeImpl(type.getString().toLowerCase())
-        currentAttribute = new BasicAttribute( type.getString().toLowerCase() );
-        attributes.put( currentAttribute );
-    }
-
     /**
      * Create a new attributeValue
      * 
-     * @param type
-     *            The attribute's name (called 'type' in the grammar)
+     * @param type The attribute's name (called 'type' in the grammar)
      */
     public void addAttributeType( String type )
     {
@@ -181,8 +164,7 @@
     /**
      * Add a new value to the current attribute
      * 
-     * @param value
-     *            The value to be added
+     * @param value The value to be added
      */
     public void addAttributeValue( Object value )
     {
@@ -204,8 +186,7 @@
     /**
      * Set the added DN.
      * 
-     * @param entry
-     *            The entry to set.
+     * @param entry The entry to set.
      */
     public void setEntry( LdapDN entry )
     {
@@ -214,19 +195,48 @@
 
 
     /**
-     * Compute the AddRequest length AddRequest : 0x68 L1 | +--> 0x04 L2 entry
-     * +--> 0x30 L3 (attributes) | +--> 0x30 L4-1 (attribute) | | | +--> 0x04
-     * L5-1 type | +--> 0x31 L6-1 (values) | | | +--> 0x04 L7-1-1 value | +-->
-     * ... | +--> 0x04 L7-1-n value | +--> 0x30 L4-2 (attribute) | | | +--> 0x04
-     * L5-2 type | +--> 0x31 L6-2 (values) | | | +--> 0x04 L7-2-1 value | +-->
-     * ... | +--> 0x04 L7-2-n value | +--> ... | +--> 0x30 L4-m (attribute) |
-     * +--> 0x04 L5-m type +--> 0x31 L6-m (values) | +--> 0x04 L7-m-1 value +-->
-     * ... +--> 0x04 L7-m-n value
+     * Compute the AddRequest length
+     * 
+     * AddRequest :
+     * 
+     * 0x68 L1
+     *  |
+     *  +--> 0x04 L2 entry
+     *  +--> 0x30 L3 (attributes)
+     *        |
+     *        +--> 0x30 L4-1 (attribute)
+     *        |     |
+     *        |     +--> 0x04 L5-1 type
+     *        |     +--> 0x31 L6-1 (values)
+     *        |           |
+     *        |           +--> 0x04 L7-1-1 value
+     *        |           +--> ...
+     *        |           +--> 0x04 L7-1-n value
+     *        |
+     *        +--> 0x30 L4-2 (attribute)
+     *        |     |
+     *        |     +--> 0x04 L5-2 type
+     *        |     +--> 0x31 L6-2 (values)
+     *        |           |
+     *        |           +--> 0x04 L7-2-1 value
+     *        |           +--> ...
+     *        |           +--> 0x04 L7-2-n value
+     *        |
+     *        +--> ...
+     *        |
+     *        +--> 0x30 L4-m (attribute)
+     *              |
+     *              +--> 0x04 L5-m type
+     *              +--> 0x31 L6-m (values)
+     *                    |
+     *                    +--> 0x04 L7-m-1 value
+     *                    +--> ...
+     *                    +--> 0x04 L7-m-n value
      */
     public int computeLength()
     {
         // The entry
-        addRequestLength = 1 + Length.getNbBytes( LdapDN.getNbBytes( entry ) ) + LdapDN.getNbBytes( entry );
+        addRequestLength = 1 + TLV.getNbBytes( LdapDN.getNbBytes( entry ) ) + LdapDN.getNbBytes( entry );
 
         // The attributes sequence
         attributesLength = 0;
@@ -246,7 +256,7 @@
 
                 // Get the type length
                 int idLength = attribute.getID().getBytes().length;
-                localAttributeLength = 1 + Length.getNbBytes( idLength ) + idLength;
+                localAttributeLength = 1 + TLV.getNbBytes( idLength ) + idLength;
 
                 // The values
                 try
@@ -264,16 +274,16 @@
                             if ( value instanceof String )
                             {
                                 int valueLength = StringTools.getBytesUtf8( ( String ) value ).length;
-                                localValuesLength += 1 + Length.getNbBytes( valueLength ) + valueLength;
+                                localValuesLength += 1 + TLV.getNbBytes( valueLength ) + valueLength;
                             }
                             else
                             {
                                 int valueLength = ( ( byte[] ) value ).length;
-                                localValuesLength += 1 + Length.getNbBytes( valueLength ) + valueLength;
+                                localValuesLength += 1 + TLV.getNbBytes( valueLength ) + valueLength;
                             }
                         }
 
-                        localAttributeLength += 1 + Length.getNbBytes( localValuesLength ) + localValuesLength;
+                        localAttributeLength += 1 + TLV.getNbBytes( localValuesLength ) + localValuesLength;
                     }
 
                 }
@@ -283,17 +293,17 @@
                 }
 
                 // add the attribute length to the attributes length
-                attributesLength += 1 + Length.getNbBytes( localAttributeLength ) + localAttributeLength;
+                attributesLength += 1 + TLV.getNbBytes( localAttributeLength ) + localAttributeLength;
 
                 attributeLength.add( new Integer( localAttributeLength ) );
                 valuesLength.add( new Integer( localValuesLength ) );
             }
         }
 
-        addRequestLength += 1 + Length.getNbBytes( attributesLength ) + attributesLength;
+        addRequestLength += 1 + TLV.getNbBytes( attributesLength ) + attributesLength;
 
         // Return the result.
-        int result = 1 + Length.getNbBytes( addRequestLength ) + addRequestLength;
+        int result = 1 + TLV.getNbBytes( addRequestLength ) + addRequestLength;
 
         if ( IS_DEBUG )
         {
@@ -305,15 +315,28 @@
 
 
     /**
-     * Encode the AddRequest message to a PDU. AddRequest : 0x68 LL 0x04 LL
-     * entry 0x30 LL attributesList 0x30 LL attributeList 0x04 LL
-     * attributeDescription 0x31 LL attributeValues 0x04 LL attributeValue ...
-     * 0x04 LL attributeValue ... 0x30 LL attributeList 0x04 LL
-     * attributeDescription 0x31 LL attributeValue 0x04 LL attributeValue ...
-     * 0x04 LL attributeValue
+     * Encode the AddRequest message to a PDU. 
+     * 
+     * AddRequest :
+     * 
+     * 0x68 LL
+     *   0x04 LL entry
+     *   0x30 LL attributesList
+     *     0x30 LL attributeList
+     *       0x04 LL attributeDescription
+     *       0x31 LL attributeValues
+     *         0x04 LL attributeValue
+     *         ... 
+     *         0x04 LL attributeValue
+     *     ... 
+     *     0x30 LL attributeList
+     *       0x04 LL attributeDescription
+     *       0x31 LL attributeValue
+     *         0x04 LL attributeValue
+     *         ... 
+     *         0x04 LL attributeValue 
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -327,14 +350,14 @@
         {
             // The AddRequest Tag
             buffer.put( LdapConstants.ADD_REQUEST_TAG );
-            buffer.put( Length.getBytes( addRequestLength ) );
+            buffer.put( TLV.getBytes( addRequestLength ) );
 
             // The entry
             Value.encode( buffer, LdapDN.getBytes( entry ) );
 
             // The attributes sequence
             buffer.put( UniversalTag.SEQUENCE_TAG );
-            buffer.put( Length.getBytes( attributesLength ) );
+            buffer.put( TLV.getBytes( attributesLength ) );
 
             // The partial attribute list
             if ( ( attributes != null ) && ( attributes.size() != 0 ) )
@@ -350,7 +373,7 @@
                     // The attributes list sequence
                     buffer.put( UniversalTag.SEQUENCE_TAG );
                     int localAttributeLength = ( ( Integer ) attributeLength.get( attributeNumber ) ).intValue();
-                    buffer.put( Length.getBytes( localAttributeLength ) );
+                    buffer.put( TLV.getBytes( localAttributeLength ) );
 
                     // The attribute type
                     Value.encode( buffer, attribute.getID() );
@@ -358,7 +381,7 @@
                     // The values
                     buffer.put( UniversalTag.SET_TAG );
                     int localValuesLength = ( ( Integer ) valuesLength.get( attributeNumber ) ).intValue();
-                    buffer.put( Length.getBytes( localValuesLength ) );
+                    buffer.put( TLV.getBytes( localValuesLength ) );
 
                     try
                     {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/add/AddResponse.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/add/AddResponse.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/add/AddResponse.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/add/AddResponse.java Tue Oct  3 06:49:43 2006
@@ -23,15 +23,16 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
 import org.apache.directory.shared.ldap.codec.LdapResponse;
 
 
 /**
- * An AddResponse Message. Its syntax is : AddResponse ::= [APPLICATION 9]
- * LDAPResult
+ * An AddResponse Message. Its syntax is : 
+ * 
+ * AddResponse ::= [APPLICATION 9] LDAPResult
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -64,22 +65,30 @@
 
 
     /**
-     * Compute the AddResponse length AddResponse : 0x69 L1 | +--> LdapResult L1 =
-     * Length(LdapResult) Length(AddResponse) = Length(0x69) + Length(L1) + L1
+     * Compute the AddResponse length 
+     * 
+     * AddResponse : 
+     * 
+     * 0x69 L1
+     *  |
+     *  +--> LdapResult
+     * 
+     * L1 = Length(LdapResult)
+     * 
+     * Length(AddResponse) = Length(0x69) + Length(L1) + L1
      */
     public int computeLength()
     {
         int ldapResponseLength = super.computeLength();
 
-        return 1 + Length.getNbBytes( ldapResponseLength ) + ldapResponseLength;
+        return 1 + TLV.getNbBytes( ldapResponseLength ) + ldapResponseLength;
     }
 
 
     /**
      * Encode the AddResponse message to a PDU.
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -93,7 +102,7 @@
         {
             // The tag
             buffer.put( LdapConstants.ADD_RESPONSE_TAG );
-            buffer.put( Length.getBytes( getLdapResponseLength() ) );
+            buffer.put( TLV.getBytes( getLdapResponseLength() ) );
         }
         catch ( BufferOverflowException boe )
         {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/BindRequest.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/BindRequest.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/BindRequest.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/BindRequest.java Tue Oct  3 06:49:43 2006
@@ -23,7 +23,7 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.ber.tlv.Value;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
@@ -55,10 +55,6 @@
     /** The bind request length */
     private transient int bindRequestLength;
 
-
-    // ~ Constructors
-    // -------------------------------------------------------------------------------
-
     /**
      * Creates a new BindRequest object.
      */
@@ -67,10 +63,6 @@
         super();
     }
 
-
-    // ~ Methods
-    // ------------------------------------------------------------------------------------
-
     /**
      * Get the message type
      * 
@@ -118,8 +110,7 @@
     /**
      * Set the user authentication
      * 
-     * @param authentication
-     *            The user authentication
+     * @param authentication The user authentication
      */
     public void setAuthentication( LdapAuthentication authentication )
     {
@@ -141,8 +132,7 @@
     /**
      * Set the user name
      * 
-     * @param name
-     *            The user name
+     * @param name The user name
      */
     public void setName( LdapDN name )
     {
@@ -175,8 +165,7 @@
     /**
      * Set the protocol version
      * 
-     * @param version
-     *            The protocol version
+     * @param version The protocol version
      */
     public void setVersion( int version )
     {
@@ -185,34 +174,48 @@
 
 
     /**
-     * Compute the BindRequest length BindRequest : 0x60 L1 | +--> 0x02 0x01
-     * (1..127) version +--> 0x04 L2 name +--> authentication L2 = Length(name)
-     * L3/4 = Length(authentication) Length(BindRequest) = Length(0x60) +
-     * Length(L1) + L1 + Length(0x02) + 1 + 1 + Length(0x04) + Length(L2) + L2 +
-     * Length(authentication)
+     * Compute the BindRequest length 
+     * 
+     * BindRequest : 
+     * 0x60 L1 
+     *   | 
+     *   +--> 0x02 0x01 (1..127) version 
+     *   +--> 0x04 L2 name 
+     *   +--> authentication 
+     *   
+     * L2 = Length(name)
+     * L3/4 = Length(authentication) 
+     * Length(BindRequest) = Length(0x60) + Length(L1) + L1 + Length(0x02) + 1 + 1 + 
+     *      Length(0x04) + Length(L2) + L2 + Length(authentication)
      */
     public int computeLength()
     {
         bindRequestLength = 1 + 1 + 1; // Initialized with version
 
         // The name
-        bindRequestLength += 1 + Length.getNbBytes( LdapDN.getNbBytes( name ) ) + LdapDN.getNbBytes( name );
+        bindRequestLength += 1 + TLV.getNbBytes( LdapDN.getNbBytes( name ) ) + LdapDN.getNbBytes( name );
 
         // The authentication
         bindRequestLength += authentication.computeLength();
 
         // Return the result.
-        return 1 + Length.getNbBytes( bindRequestLength ) + bindRequestLength;
+        return 1 + TLV.getNbBytes( bindRequestLength ) + bindRequestLength;
     }
 
 
     /**
-     * Encode the BindRequest message to a PDU. BindRequest : 0x60 LL 0x02 LL
-     * version 0x04 LL name authentication.encode() 0x80 LL simple / \ 0x83 LL
-     * mechanism [0x04 LL credential]
+     * Encode the BindRequest message to a PDU. 
+     * 
+     * BindRequest : 
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * 0x60 LL 
+     *   0x02 LL version         0x80 LL simple 
+     *   0x04 LL name           /   
+     *   authentication.encode() 
+     *                          \ 0x83 LL mechanism [0x04 LL credential]
+     * 
+     * 
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -226,7 +229,7 @@
         {
             // The BindRequest Tag
             buffer.put( LdapConstants.BIND_REQUEST_TAG );
-            buffer.put( Length.getBytes( bindRequestLength ) );
+            buffer.put( TLV.getBytes( bindRequestLength ) );
 
         }
         catch ( BufferOverflowException boe )
@@ -280,4 +283,62 @@
 
         return sb.toString();
     }
+
+    /* Used only for test perfs
+    public static void main( String[] args ) throws Exception
+    {
+        Asn1Decoder ldapDecoder = new LdapDecoder();
+
+        ByteBuffer stream = ByteBuffer.allocate( 0x52 );
+        stream.put( new byte[]
+             { 
+             0x30, 0x50,                 // LDAPMessage ::=SEQUENCE {
+               0x02, 0x01, 0x01,         // messageID MessageID
+               0x60, 0x2E,               // CHOICE { ..., bindRequest BindRequest, ...
+                                         // BindRequest ::= APPLICATION[0] SEQUENCE {
+                 0x02, 0x01, 0x03,       // version INTEGER (1..127),
+                 0x04, 0x1F,             // name LDAPDN,
+                 'u', 'i', 'd', '=', 'a', 'k', 'a', 'r', 'a', 's', 'u', 'l', 'u', ',', 'd', 'c', '=', 'e', 'x', 'a',
+                 'm', 'p', 'l', 'e', ',', 'd', 'c', '=', 'c', 'o', 'm', 
+                 ( byte ) 0x80, 0x08,    // authentication AuthenticationChoice
+                                         // AuthenticationChoice ::= CHOICE { simple [0] OCTET STRING,
+                                         // ...
+                   'p', 'a', 's', 's', 'w', 'o', 'r', 'd', 
+               ( byte ) 0xA0, 0x1B, // A control
+                 0x30, 0x19, 
+                   0x04, 0x17, 
+                     0x32, 0x2E, 0x31, 0x36, 0x2E, 0x38, 0x34, 0x30, 0x2E, 0x31, 0x2E, 0x31, 0x31, 0x33, 0x37, 0x33, 
+                     0x30, 0x2E, 0x33, 0x2E, 0x34, 0x2E, 0x32 
+             } );
+
+        stream.flip();
+
+        // Allocate a LdapMessage Container
+        IAsn1Container ldapMessageContainer = new LdapMessageContainer();
+
+        // Decode the BindRequest PDU
+        try
+        {
+            long t0 = System.currentTimeMillis();
+            for ( int i = 0; i < 10000000; i++ )
+            {
+                ldapDecoder.decode( stream, ldapMessageContainer );
+                ( ( LdapMessageContainer ) ldapMessageContainer).clean();
+                stream.flip();
+            }
+            long t1 = System.currentTimeMillis();
+            System.out.println( "Delta = " + ( t1 - t0 ) );
+            
+            ldapDecoder.decode( stream, ldapMessageContainer );
+        }
+        catch ( DecoderException de )
+        {
+            de.printStackTrace();
+        }
+        catch ( NamingException ne )
+        {
+            ne.printStackTrace();
+        }
+    }
+    */
 }

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/BindResponse.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/BindResponse.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/BindResponse.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/BindResponse.java Tue Oct  3 06:49:43 2006
@@ -23,16 +23,21 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
 import org.apache.directory.shared.ldap.codec.LdapResponse;
 
 
 /**
- * A BindResponse Message. Its syntax is : BindResponse ::= [APPLICATION 1]
- * SEQUENCE { COMPONENTS OF LDAPResult, serverSaslCreds [7] OCTET STRING
- * OPTIONAL } LdapResult ::= resultCode matchedDN errorMessage (referrals)*
+ * A BindResponse Message. 
+ * 
+ * Its syntax is : 
+ * BindResponse ::= [APPLICATION 1] SEQUENCE { 
+ *   COMPONENTS OF LDAPResult, 
+ *   serverSaslCreds [7] OCTET STRING OPTIONAL } 
+ *   
+ * LdapResult ::= resultCode matchedDN errorMessage (referrals)*
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -86,8 +91,7 @@
     /**
      * Set the server sasl credentials
      * 
-     * @param serverSaslCreds
-     *            The serverSaslCreds to set.
+     * @param serverSaslCreds The serverSaslCreds to set.
      */
     public void setServerSaslCreds( byte[] serverSaslCreds )
     {
@@ -96,10 +100,16 @@
 
 
     /**
-     * Compute the BindResponse length BindResponse : 0x61 L1 | +--> LdapResult
-     * +--> [serverSaslCreds] L1 = Length(LdapResult) [ +
-     * Length(serverSaslCreds) ] Length(BindResponse) = Length(0x61) +
-     * Length(L1) + L1
+     * Compute the BindResponse length 
+     * 
+     * BindResponse : 
+     * 0x61 L1 
+     *   | 
+     *   +--> LdapResult
+     *   +--> [serverSaslCreds] 
+     *   
+     * L1 = Length(LdapResult) [ + Length(serverSaslCreds) ] 
+     * Length(BindResponse) = Length(0x61) + Length(L1) + L1
      */
     public int computeLength()
     {
@@ -109,11 +119,11 @@
 
         if ( serverSaslCreds != null )
         {
-            bindResponseLength += 1 + Length.getNbBytes( ( ( byte[] ) serverSaslCreds ).length )
+            bindResponseLength += 1 + TLV.getNbBytes( ( ( byte[] ) serverSaslCreds ).length )
                 + ( ( byte[] ) serverSaslCreds ).length;
         }
 
-        return 1 + Length.getNbBytes( bindResponseLength ) + bindResponseLength;
+        return 1 + TLV.getNbBytes( bindResponseLength ) + bindResponseLength;
     }
 
 
@@ -121,8 +131,7 @@
      * Encode the BindResponse message to a PDU. BindResponse :
      * LdapResult.encode [0x87 LL serverSaslCreds]
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -136,7 +145,7 @@
         {
             // The BindResponse Tag
             buffer.put( LdapConstants.BIND_RESPONSE_TAG );
-            buffer.put( Length.getBytes( bindResponseLength ) );
+            buffer.put( TLV.getBytes( bindResponseLength ) );
 
             // The LdapResult
             super.encode( buffer );
@@ -146,7 +155,7 @@
             {
                 buffer.put( ( byte ) LdapConstants.SERVER_SASL_CREDENTIAL_TAG );
 
-                buffer.put( Length.getBytes( ( ( byte[] ) serverSaslCreds ).length ) );
+                buffer.put( TLV.getBytes( ( ( byte[] ) serverSaslCreds ).length ) );
 
                 if ( ( ( byte[] ) serverSaslCreds ).length != 0 )
                 {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/SaslCredentials.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/SaslCredentials.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/SaslCredentials.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/SaslCredentials.java Tue Oct  3 06:49:43 2006
@@ -23,11 +23,11 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.ber.tlv.Value;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
-import org.apache.directory.shared.ldap.codec.util.LdapString;
+import org.apache.directory.shared.ldap.util.StringTools;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -51,7 +51,10 @@
     /**
      * Any mechanism defined in RFC 2222 : KERBEROS_V4, GSSAPI, SKEY, EXTERNAL
      */
-    private LdapString mechanism;
+    private String mechanism;
+    
+    /** The mechanism bytes */
+    private transient byte[] mechanismBytes;
 
     /** optional credentials of the user */
     private byte[] credentials;
@@ -80,8 +83,7 @@
     /**
      * Set the credentials
      * 
-     * @param credentials
-     *            The credentials
+     * @param credentials The credentials
      */
     public void setCredentials( byte[] credentials )
     {
@@ -97,40 +99,50 @@
     public String getMechanism()
     {
 
-        return ( ( mechanism == null ) ? null : mechanism.getString() );
+        return ( ( mechanism == null ) ? null : mechanism );
     }
 
 
     /**
      * Set the mechanism
      * 
-     * @param mechanism
-     *            The mechanism
+     * @param mechanism The mechanism
      */
-    public void setMechanism( LdapString mechanism )
+    public void setMechanism( String mechanism )
     {
         this.mechanism = mechanism;
     }
 
 
     /**
-     * Compute the Sasl authentication length Sasl authentication : 0xA3 L1 0x04
-     * L2 mechanism [0x04 L3 credentials] L2 = Length(mechanism) L3 =
-     * Length(credentials) L1 = L2 + L3 Length(Sasl authentication) =
-     * Length(0xA3) + Length(L1) + Length(0x04) + Length(L2) + Length(mechanism) [+
-     * Length(0x04) + Length(L3) + Length(credentials)]
+     * Compute the Sasl authentication length 
+     * 
+     * Sasl authentication :
+     * 
+     * 0xA3 L1 
+     *   0x04 L2 mechanism
+     *   [0x04 L3 credentials]
+     * 
+     * L2 = Length(mechanism)
+     * L3 = Length(credentials)
+     * L1 = L2 + L3
+     * 
+     * Length(Sasl authentication) = Length(0xA3) + Length(L1) + 
+     *                               Length(0x04) + Length(L2) + Length(mechanism)
+     *                               [+ Length(0x04) + Length(L3) + Length(credentials)]
      */
     public int computeLength()
     {
-        mechanismLength = 1 + Length.getNbBytes( mechanism.getNbBytes() ) + mechanism.getNbBytes();
+        mechanismBytes = StringTools.getBytesUtf8( mechanism );
+        mechanismLength = 1 + TLV.getNbBytes( mechanismBytes.length ) + mechanismBytes.length;
         credentialsLength = 0;
 
         if ( credentials != null )
         {
-            credentialsLength = 1 + Length.getNbBytes( credentials.length ) + credentials.length;
+            credentialsLength = 1 + TLV.getNbBytes( credentials.length ) + credentials.length;
         }
 
-        int saslLength = 1 + Length.getNbBytes( mechanismLength + credentialsLength ) + mechanismLength
+        int saslLength = 1 + TLV.getNbBytes( mechanismLength + credentialsLength ) + mechanismLength
             + credentialsLength;
 
         if ( IS_DEBUG )
@@ -143,11 +155,14 @@
 
 
     /**
-     * Encode the sasl authentication to a PDU. SimpleAuthentication : 0xA3 L1
-     * 0x04 L2 mechanism [0x04 L3 credentials]
+     * Encode the sasl authentication to a PDU. 
+     * 
+     * SimpleAuthentication : 
+     * 0xA3 L1 
+     *   0x04 L2 mechanism
+     *   [0x04 L3 credentials]
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -163,9 +178,9 @@
             // The saslAuthentication Tag
             buffer.put( ( byte ) LdapConstants.BIND_REQUEST_SASL_TAG );
 
-            buffer.put( Length.getBytes( mechanismLength + credentialsLength ) );
+            buffer.put( TLV.getBytes( mechanismLength + credentialsLength ) );
 
-            Value.encode( buffer, mechanism.toString() );
+            Value.encode( buffer, mechanism );
 
             if ( credentials != null )
             {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/SimpleAuthentication.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/SimpleAuthentication.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/SimpleAuthentication.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/SimpleAuthentication.java Tue Oct  3 06:49:43 2006
@@ -23,7 +23,7 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
 import org.slf4j.Logger;
@@ -67,8 +67,7 @@
     /**
      * Set the simple password
      * 
-     * @param simple
-     *            The simple password
+     * @param simple The simple password
      */
     public void setSimple( byte[] simple )
     {
@@ -77,15 +76,18 @@
 
 
     /**
-     * Compute the Simple authentication length Simple authentication : 0x80 L1
-     * simple L1 = Length(simple) Length(Simple authentication) = Length(0x80) +
-     * Length(L1) + Length(simple)
+     * Compute the Simple authentication length 
+     * 
+     * Simple authentication : 0x80 L1 simple 
+     * 
+     * L1 = Length(simple) 
+     * Length(Simple authentication) = Length(0x80) + Length(L1) + Length(simple)
      */
     public int computeLength()
     {
         int length = 1;
 
-        length += Length.getNbBytes( simple.length ) + simple.length;
+        length += TLV.getNbBytes( simple.length ) + simple.length;
 
         if ( IS_DEBUG )
         {
@@ -97,11 +99,11 @@
 
 
     /**
-     * Encode the simple authentication to a PDU. SimpleAuthentication : 0x80 LL
-     * simple
+     * Encode the simple authentication to a PDU. 
+     * 
+     * SimpleAuthentication : 0x80 LL simple
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -116,7 +118,7 @@
         {
             // The simpleAuthentication Tag
             buffer.put( ( byte ) LdapConstants.BIND_REQUEST_SIMPLE_TAG );
-            buffer.put( Length.getBytes( simple.length ) );
+            buffer.put( TLV.getBytes( simple.length ) );
 
             if ( simple.length != 0 )
             {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareRequest.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareRequest.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareRequest.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareRequest.java Tue Oct  3 06:49:43 2006
@@ -23,22 +23,28 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.ber.tlv.UniversalTag;
 import org.apache.directory.shared.asn1.ber.tlv.Value;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
 import org.apache.directory.shared.ldap.codec.LdapMessage;
-import org.apache.directory.shared.ldap.codec.util.LdapString;
 import org.apache.directory.shared.ldap.name.LdapDN;
 import org.apache.directory.shared.ldap.util.StringTools;
 
 
 /**
- * A CompareRequest Message. Its syntax is : CompareRequest ::= [APPLICATION 14]
- * SEQUENCE { entry LDAPDN, ava AttributeValueAssertion }
- * AttributeValueAssertion ::= SEQUENCE { attributeDesc AttributeDescription,
- * assertionValue AssertionValue } AttributeDescription ::= LDAPString
+ * A CompareRequest Message. Its syntax is :
+ * CompareRequest ::= [APPLICATION 14] SEQUENCE {
+ *              entry           LDAPDN,
+ *              ava             AttributeValueAssertion }
+ * 
+ * AttributeValueAssertion ::= SEQUENCE {
+ *              attributeDesc   AttributeDescription,
+ *              assertionValue  AssertionValue }
+ * 
+ * AttributeDescription ::= LDAPString
+ * 
  * AssertionValue ::= OCTET STRING
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
@@ -52,7 +58,7 @@
     private LdapDN entry;
 
     /** The attribute to be compared */
-    private LdapString attributeDesc;
+    private String attributeDesc;
 
     /** The value to be compared */
     private Object assertionValue;
@@ -104,8 +110,7 @@
     /**
      * Set the entry to be compared
      * 
-     * @param entry
-     *            The entry to set.
+     * @param entry The entry to set.
      */
     public void setEntry( LdapDN entry )
     {
@@ -127,8 +132,7 @@
     /**
      * Set the assertion value
      * 
-     * @param assertionValue
-     *            The assertionValue to set.
+     * @param assertionValue The assertionValue to set.
      */
     public void setAssertionValue( Object assertionValue )
     {
@@ -143,64 +147,78 @@
      */
     public String getAttributeDesc()
     {
-        return ( ( attributeDesc == null ) ? "" : attributeDesc.getString() );
+        return ( ( attributeDesc == null ) ? "" : attributeDesc );
     }
 
 
     /**
      * Set the attribute description
      * 
-     * @param attributeDesc
-     *            The attributeDesc to set.
+     * @param attributeDesc The attributeDesc to set.
      */
-    public void setAttributeDesc( LdapString attributeDesc )
+    public void setAttributeDesc( String attributeDesc )
     {
         this.attributeDesc = attributeDesc;
     }
 
 
     /**
-     * Compute the CompareRequest length CompareRequest : 0x6E L1 | +--> 0x04 L2
-     * entry +--> 0x30 L3 (ava) | +--> 0x04 L4 attributeDesc +--> 0x04 L5
-     * assertionValue L3 = Length(0x04) + Length(L4) + L4 + Length(0x04) +
-     * Length(L5) + L5 Length(CompareRequest) = Length(0x6E) + Length(L1) + L1 +
-     * Length(0x04) + Length(L2) + L2 + Length(0x30) + Length(L3) + L3
+     * Compute the CompareRequest length 
      * 
-     * @return DOCUMENT ME!
+     * CompareRequest : 
+     * 0x6E L1 
+     *   | 
+     *   +--> 0x04 L2 entry 
+     *   +--> 0x30 L3 (ava) 
+     *         | 
+     *         +--> 0x04 L4 attributeDesc 
+     *         +--> 0x04 L5 assertionValue 
+     *         
+     * L3 = Length(0x04) + Length(L4) + L4 + Length(0x04) +
+     *      Length(L5) + L5 
+     * Length(CompareRequest) = Length(0x6E) + Length(L1) + L1 +
+     *      Length(0x04) + Length(L2) + L2 + Length(0x30) + Length(L3) + L3
+     * 
+     * @return The CompareRequest PDU's length
      */
     public int computeLength()
     {
 
         // The entry
-        compareRequestLength = 1 + Length.getNbBytes( LdapDN.getNbBytes( entry ) ) + LdapDN.getNbBytes( entry );
+        compareRequestLength = 1 + TLV.getNbBytes( LdapDN.getNbBytes( entry ) ) + LdapDN.getNbBytes( entry );
 
         // The attribute value assertion
-        avaLength = 1 + Length.getNbBytes( attributeDesc.getNbBytes() ) + attributeDesc.getNbBytes();
+        int attributeDescLength = StringTools.getBytesUtf8( attributeDesc ).length;
+        avaLength = 1 + TLV.getNbBytes( attributeDescLength ) + attributeDescLength;
 
         if ( assertionValue instanceof String )
         {
             int assertionValueLength = StringTools.getBytesUtf8( ( String ) assertionValue ).length;
-            avaLength += 1 + Length.getNbBytes( assertionValueLength ) + assertionValueLength;
+            avaLength += 1 + TLV.getNbBytes( assertionValueLength ) + assertionValueLength;
         }
         else
         {
-            avaLength += 1 + Length.getNbBytes( ( ( byte[] ) assertionValue ).length )
+            avaLength += 1 + TLV.getNbBytes( ( ( byte[] ) assertionValue ).length )
                 + ( ( byte[] ) assertionValue ).length;
         }
 
-        compareRequestLength += 1 + Length.getNbBytes( avaLength ) + avaLength;
+        compareRequestLength += 1 + TLV.getNbBytes( avaLength ) + avaLength;
 
-        return 1 + Length.getNbBytes( compareRequestLength ) + compareRequestLength;
+        return 1 + TLV.getNbBytes( compareRequestLength ) + compareRequestLength;
     }
 
 
     /**
-     * Encode the CompareRequest message to a PDU. CompareRequest : 0x6E LL 0x04
-     * LL entry 0x30 LL attributeValueAssertion 0x04 LL attributeDesc 0x04 LL
-     * assertionValue
+     * Encode the CompareRequest message to a PDU. 
+     * 
+     * CompareRequest : 
+     *   0x6E LL 
+     *     0x04 LL entry 
+     *     0x30 LL attributeValueAssertion 
+     *       0x04 LL attributeDesc 
+     *       0x04 LL assertionValue
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -214,14 +232,14 @@
         {
             // The CompareRequest Tag
             buffer.put( LdapConstants.COMPARE_REQUEST_TAG );
-            buffer.put( Length.getBytes( compareRequestLength ) );
+            buffer.put( TLV.getBytes( compareRequestLength ) );
 
             // The entry
             Value.encode( buffer, LdapDN.getBytes( entry ) );
 
             // The attributeValueAssertion sequence Tag
             buffer.put( UniversalTag.SEQUENCE_TAG );
-            buffer.put( Length.getBytes( avaLength ) );
+            buffer.put( TLV.getBytes( avaLength ) );
         }
         catch ( BufferOverflowException boe )
         {
@@ -229,7 +247,7 @@
         }
 
         // The attributeDesc
-        Value.encode( buffer, attributeDesc.getString() );
+        Value.encode( buffer, attributeDesc );
 
         // The assertionValue
         if ( assertionValue instanceof String )

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareResponse.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareResponse.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareResponse.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareResponse.java Tue Oct  3 06:49:43 2006
@@ -23,15 +23,16 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
 import org.apache.directory.shared.ldap.codec.LdapResponse;
 
 
 /**
- * An CompareResponse Message. Its syntax is : CompareResponse ::= [APPLICATION
- * 15] LDAPResult
+ * An CompareResponse Message. Its syntax is : 
+ * 
+ * CompareResponse ::= [APPLICATION 15] LDAPResult
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -64,23 +65,30 @@
 
 
     /**
-     * Compute the CompareResponse length CompareResponse : 0x6F L1 | +-->
-     * LdapResult L1 = Length(LdapResult) Length(CompareResponse) = Length(0x6F) +
-     * Length(L1) + L1
+     * Compute the CompareResponse length 
+     * 
+     * CompareResponse :
+     * 
+     * 0x6F L1
+     *  |
+     *  +--> LdapResult
+     * 
+     * L1 = Length(LdapResult)
+     * 
+     * Length(CompareResponse) = Length(0x6F) + Length(L1) + L1
      */
     public int computeLength()
     {
         int ldapResponseLength = super.computeLength();
 
-        return 1 + Length.getNbBytes( ldapResponseLength ) + ldapResponseLength;
+        return 1 + TLV.getNbBytes( ldapResponseLength ) + ldapResponseLength;
     }
 
 
     /**
      * Encode the CompareResponse message to a PDU.
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -94,7 +102,7 @@
         {
             // The tag
             buffer.put( LdapConstants.COMPARE_RESPONSE_TAG );
-            buffer.put( Length.getBytes( getLdapResponseLength() ) );
+            buffer.put( TLV.getBytes( getLdapResponseLength() ) );
         }
         catch ( BufferOverflowException boe )
         {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequest.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequest.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequest.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequest.java Tue Oct  3 06:49:43 2006
@@ -23,7 +23,7 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
 import org.apache.directory.shared.ldap.codec.LdapMessage;
@@ -31,7 +31,11 @@
 
 
 /**
- * A DelRequest Message. Its syntax is : DelRequest ::= [APPLICATION 10] LDAPDN
+ * A DelRequest Message. 
+ * 
+ * Its syntax is : 
+ * 
+ * DelRequest ::= [APPLICATION 10] LDAPDN
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -84,8 +88,7 @@
     /**
      * Set the entry to be deleted
      * 
-     * @param entry
-     *            The entry to set.
+     * @param entry The entry to set.
      */
     public void setEntry( LdapDN entry )
     {
@@ -94,21 +97,28 @@
 
 
     /**
-     * Compute the DelRequest length DelRequest : 0x4A L1 entry L1 =
-     * Length(entry) Length(DelRequest) = Length(0x4A) + Length(L1) + L1
+     * Compute the DelRequest length 
+     * 
+     * DelRequest : 
+     * 0x4A L1 entry 
+     * 
+     * L1 = Length(entry) 
+     * Length(DelRequest) = Length(0x4A) + Length(L1) + L1
      */
     public int computeLength()
     {
         // The entry
-        return 1 + Length.getNbBytes( LdapDN.getNbBytes( entry ) ) + LdapDN.getNbBytes( entry );
+        return 1 + TLV.getNbBytes( LdapDN.getNbBytes( entry ) ) + LdapDN.getNbBytes( entry );
     }
 
 
     /**
-     * Encode the DelRequest message to a PDU. DelRequest : 0x4A LL entry
+     * Encode the DelRequest message to a PDU. 
+     * 
+     * DelRequest : 
+     * 0x4A LL entry
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -124,7 +134,7 @@
             buffer.put( LdapConstants.DEL_REQUEST_TAG );
 
             // The entry
-            buffer.put( Length.getBytes( LdapDN.getNbBytes( entry ) ) );
+            buffer.put( TLV.getBytes( LdapDN.getNbBytes( entry ) ) );
             buffer.put( LdapDN.getBytes( entry ) );
         }
         catch ( BufferOverflowException boe )

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelResponse.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelResponse.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelResponse.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelResponse.java Tue Oct  3 06:49:43 2006
@@ -23,15 +23,16 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
 import org.apache.directory.shared.ldap.codec.LdapResponse;
 
 
 /**
- * An DelResponse Message. Its syntax is : DelResponse ::= [APPLICATION 11]
- * LDAPResult
+ * An DelResponse Message. Its syntax is : 
+ * 
+ * DelResponse ::= [APPLICATION 11] LDAPResult
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -61,22 +62,30 @@
 
 
     /**
-     * Compute the DelResponse length DelResponse : 0x6B L1 | +--> LdapResult L1 =
-     * Length(LdapResult) Length(DelResponse) = Length(0x6B) + Length(L1) + L1
+     * Compute the DelResponse length 
+     * 
+     * DelResponse :
+     * 
+     * 0x6B L1
+     *  |
+     *  +--> LdapResult
+     * 
+     * L1 = Length(LdapResult)
+     * 
+     * Length(DelResponse) = Length(0x6B) + Length(L1) + L1
      */
     public int computeLength()
     {
         int ldapResponseLength = super.computeLength();
 
-        return 1 + Length.getNbBytes( ldapResponseLength ) + ldapResponseLength;
+        return 1 + TLV.getNbBytes( ldapResponseLength ) + ldapResponseLength;
     }
 
 
     /**
      * Encode the DelResponse message to a PDU.
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -90,7 +99,7 @@
         {
             // The tag
             buffer.put( LdapConstants.DEL_RESPONSE_TAG );
-            buffer.put( Length.getBytes( getLdapResponseLength() ) );
+            buffer.put( TLV.getBytes( getLdapResponseLength() ) );
         }
         catch ( BufferOverflowException boe )
         {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/ExtendedRequest.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/ExtendedRequest.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/ExtendedRequest.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/ExtendedRequest.java Tue Oct  3 06:49:43 2006
@@ -23,7 +23,7 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.asn1.primitives.OID;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
@@ -32,9 +32,10 @@
 
 
 /**
- * A ExtendedRequest Message. Its syntax is : ExtendedRequest ::= [APPLICATION
- * 23] SEQUENCE { requestName [0] LDAPOID, requestValue [1] OCTET STRING
- * OPTIONAL }
+ * A ExtendedRequest Message. Its syntax is :
+ *   ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
+ *              requestName      [0] LDAPOID,
+ *              requestValue     [1] OCTET STRING OPTIONAL }
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -96,8 +97,7 @@
     /**
      * Set the extended request name
      * 
-     * @param requestName
-     *            The request name to set.
+     * @param requestName The request name to set.
      */
     public void setRequestName( OID requestName )
     {
@@ -119,8 +119,7 @@
     /**
      * Set the extended request value
      * 
-     * @param requestValue
-     *            The request value to set.
+     * @param requestValue The request value to set.
      */
     public void setRequestValue( byte[] requestValue )
     {
@@ -129,32 +128,44 @@
 
 
     /**
-     * Compute the ExtendedRequest length ExtendedRequest : 0x77 L1 | +--> 0x80
-     * L2 name [+--> 0x81 L3 value] L1 = Length(0x80) + Length(L2) + L2 [+
-     * Length(0x81) + Length(L3) + L3] Length(ExtendedRequest) = Length(0x77) +
-     * Length(L1) + L1
+     * Compute the ExtendedRequest length
+     * 
+     * ExtendedRequest :
+     * 
+     * 0x77 L1
+     *  |
+     *  +--> 0x80 L2 name
+     *  [+--> 0x81 L3 value]
+     * 
+     * L1 = Length(0x80) + Length(L2) + L2
+     *      [+ Length(0x81) + Length(L3) + L3]
+     * 
+     * Length(ExtendedRequest) = Length(0x77) + Length(L1) + L1
      */
     public int computeLength()
     {
         oidLength = requestName.toString().length();
-        extendedRequestLength = 1 + Length.getNbBytes( oidLength ) + oidLength;
+        extendedRequestLength = 1 + TLV.getNbBytes( oidLength ) + oidLength;
 
         if ( requestValue != null )
         {
-            extendedRequestLength += 1 + Length.getNbBytes( ( ( byte[] ) requestValue ).length )
+            extendedRequestLength += 1 + TLV.getNbBytes( ( ( byte[] ) requestValue ).length )
                 + ( ( byte[] ) requestValue ).length;
         }
 
-        return 1 + Length.getNbBytes( extendedRequestLength ) + extendedRequestLength;
+        return 1 + TLV.getNbBytes( extendedRequestLength ) + extendedRequestLength;
     }
 
 
     /**
-     * Encode the ExtendedRequest message to a PDU. ExtendedRequest : 0x80 LL
-     * resquest name [0x81 LL request value]
+     * Encode the ExtendedRequest message to a PDU. 
+     * 
+     * ExtendedRequest :
+     * 
+     * 0x80 LL resquest name
+     * [0x81 LL request value]
      * 
-     * @param buffer
-     *            The buffer where to put the PDU
+     * @param buffer The buffer where to put the PDU
      * @return The PDU.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
@@ -168,7 +179,7 @@
         {
             // The BindResponse Tag
             buffer.put( LdapConstants.EXTENDED_REQUEST_TAG );
-            buffer.put( Length.getBytes( extendedRequestLength ) );
+            buffer.put( TLV.getBytes( extendedRequestLength ) );
 
             // The requestName, if any
             if ( requestName == null )
@@ -177,7 +188,7 @@
             }
 
             buffer.put( ( byte ) LdapConstants.EXTENDED_REQUEST_NAME_TAG );
-            buffer.put( Length.getBytes( oidLength ) );
+            buffer.put( TLV.getBytes( oidLength ) );
 
             if ( requestName.getOIDLength() != 0 )
             {
@@ -189,7 +200,7 @@
             {
                 buffer.put( ( byte ) LdapConstants.EXTENDED_REQUEST_VALUE_TAG );
 
-                buffer.put( Length.getBytes( requestValue.length ) );
+                buffer.put( TLV.getBytes( requestValue.length ) );
 
                 if ( requestValue.length != 0 )
                 {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/ExtendedResponse.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/ExtendedResponse.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/ExtendedResponse.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/ExtendedResponse.java Tue Oct  3 06:49:43 2006
@@ -23,7 +23,7 @@
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.asn1.primitives.OID;
 import org.apache.directory.shared.ldap.codec.LdapConstants;
@@ -32,9 +32,11 @@
 
 
 /**
- * A ExtendedResponse Message. Its syntax is : ExtendedResponse ::= [APPLICATION
- * 24] SEQUENCE { COMPONENTS OF LDAPResult, responseName [10] LDAPOID OPTIONAL,
- * response [11] OCTET STRING OPTIONAL }
+ * A ExtendedResponse Message. Its syntax is :
+ *   ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
+ *              COMPONENTS OF LDAPResult,
+ *              responseName     [10] LDAPOID OPTIONAL,
+ *              response         [11] OCTET STRING OPTIONAL }
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -96,8 +98,7 @@
     /**
      * Set the extended response name
      * 
-     * @param responseName
-     *            The name to set.
+     * @param responseName The name to set.
      */
     public void setResponseName( OID responseName )
     {
@@ -119,8 +120,7 @@
     /**
      * Set the extended response
      * 
-     * @param response
-     *            The response to set.
+     * @param response The response to set.
      */
     public void setResponse( Object response )
     {
@@ -129,17 +129,19 @@
 
 
     /**
-     * Compute the ExtendedResponse length 
-     * ExtendedResponse : 
-     * 0x78 L1 
-     *   | 
-     *   +--> LdapResult 
-     *  [+--> 0x8A L2 name 
-     *  [+--> 0x8B L3 response]] 
-     *  
-     * L1 = Length(LdapResult) 
-     *   [ + Length(0x8A) + Length(L2) + L2 
-     *   [ + Length(0x8B) + Length(L3) + L3]] 
+     * Compute the ExtendedResponse length
+     * 
+     * ExtendedResponse :
+     * 
+     * 0x78 L1
+     *  |
+     *  +--> LdapResult
+     * [+--> 0x8A L2 name
+     * [+--> 0x8B L3 response]]
+     * 
+     * L1 = Length(LdapResult)
+     *      [ + Length(0x8A) + Length(L2) + L2
+     *       [ + Length(0x8B) + Length(L3) + L3]]
      * 
      * Length(ExtendedResponse) = Length(0x78) + Length(L1) + L1
      * 
@@ -152,30 +154,33 @@
         if ( responseName != null )
         {
             responseNameLength = responseName.toString().length();
-            extendedResponseLength += 1 + Length.getNbBytes( responseNameLength ) + responseNameLength;
-        }
+            extendedResponseLength += 1 + TLV.getNbBytes( responseNameLength ) + responseNameLength;
 
-        if ( response != null )
-        {
-            if ( response instanceof String )
-            {
-                int responseLength = StringTools.getBytesUtf8( ( String ) response ).length;
-                extendedResponseLength += 1 + Length.getNbBytes( responseLength ) + responseLength;
-            }
-            else
+            if ( response != null )
             {
-                extendedResponseLength += 1 + Length.getNbBytes( ( ( byte[] ) response ).length )
-                    + ( ( byte[] ) response ).length;
+                if ( response instanceof String )
+                {
+                    int responseLength = StringTools.getBytesUtf8( ( String ) response ).length;
+                    extendedResponseLength += 1 + TLV.getNbBytes( responseLength ) + responseLength;
+                }
+                else
+                {
+                    extendedResponseLength += 1 + TLV.getNbBytes( ( ( byte[] ) response ).length )
+                        + ( ( byte[] ) response ).length;
+                }
             }
         }
 
-        return 1 + Length.getNbBytes( extendedResponseLength ) + extendedResponseLength;
+        return 1 + TLV.getNbBytes( extendedResponseLength ) + extendedResponseLength;
     }
 
 
     /**
-     * Encode the ExtendedResponse message to a PDU. ExtendedResponse :
-     * LdapResult.encode() [0x8A LL response name] [0x8B LL response]
+     * Encode the ExtendedResponse message to a PDU. 
+     * ExtendedResponse :
+     * LdapResult.encode()
+     * [0x8A LL response name]
+     * [0x8B LL response]
      * 
      * @param buffer
      *            The buffer where to put the PDU
@@ -192,7 +197,7 @@
         {
             // The BindResponse Tag
             buffer.put( LdapConstants.EXTENDED_RESPONSE_TAG );
-            buffer.put( Length.getBytes( extendedResponseLength ) );
+            buffer.put( TLV.getBytes( extendedResponseLength ) );
 
             // The LdapResult
             super.encode( buffer );
@@ -201,7 +206,7 @@
             if ( responseName != null )
             {
                 buffer.put( ( byte ) LdapConstants.EXTENDED_RESPONSE_RESPONSE_NAME_TAG );
-                buffer.put( Length.getBytes( responseNameLength ) );
+                buffer.put( TLV.getBytes( responseNameLength ) );
 
                 if ( responseName.getOIDLength() != 0 )
                 {
@@ -217,7 +222,7 @@
                 if ( response instanceof String )
                 {
                     byte[] responseBytes = StringTools.getBytesUtf8( ( String ) response );
-                    buffer.put( Length.getBytes( responseBytes.length ) );
+                    buffer.put( TLV.getBytes( responseBytes.length ) );
 
                     if ( responseBytes.length != 0 )
                     {
@@ -226,7 +231,7 @@
                 }
                 else
                 {
-                    buffer.put( Length.getBytes( ( ( byte[] ) response ).length ) );
+                    buffer.put( TLV.getBytes( ( ( byte[] ) response ).length ) );
 
                     if ( ( ( byte[] ) response ).length != 0 )
                     {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulAction.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulAction.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulAction.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulAction.java Tue Oct  3 06:49:43 2006
@@ -58,10 +58,8 @@
     /**
      * Create a GracefulAction object, with a timeOffline and a delay
      * 
-     * @param timeOffline
-     *            The time the server will be offline
-     * @param delay
-     *            The delay before the disconnection
+     * @param timeOffline The time the server will be offline
+     * @param delay The delay before the disconnection
      */
     public GracefulAction(int timeOffline, int delay)
     {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnect.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnect.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnect.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnect.java Tue Oct  3 06:49:43 2006
@@ -25,7 +25,7 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
 import org.apache.directory.shared.asn1.ber.tlv.UniversalTag;
 import org.apache.directory.shared.asn1.ber.tlv.Value;
 import org.apache.directory.shared.asn1.codec.EncoderException;
@@ -62,10 +62,8 @@
     /**
      * Create a GracefulDisconnect object, with a timeOffline and a delay
      * 
-     * @param timeOffline
-     *            The time the server will be offline
-     * @param delay
-     *            The delay before the disconnection
+     * @param timeOffline The time the server will be offline
+     * @param delay The delay before the disconnection
      */
     public GracefulDisconnect(int timeOffline, int delay)
     {
@@ -102,8 +100,7 @@
     /**
      * Add a new URL of a replicated server
      * 
-     * @param replicatedContext
-     *            The replictaed server to add.
+     * @param replicatedContext The replictaed server to add.
      */
     public void addReplicatedContexts( LdapURL replicatedContext )
     {
@@ -112,9 +109,15 @@
 
 
     /**
-     * Compute the GracefulDisconnect length 0x30 L1 | +--> [ 0x02 0x0(1-4)
-     * [0..720] ] +--> [ 0x80 0x0(1-3) [0..86400] ] +--> [ 0x30 L2 | +--> (0x04
-     * L3 value) +
+     * Compute the GracefulDisconnect length 
+     * 
+     * 0x30 L1 
+     *   | 
+     *   +--> [ 0x02 0x0(1-4) [0..720] ] 
+     *   +--> [ 0x80 0x0(1-3) [0..86400] ] 
+     *   +--> [ 0x30 L2 
+     *           | 
+     *           +--> (0x04 L3 value) + ]
      */
     public int computeLength()
     {
@@ -140,25 +143,23 @@
             while ( replicatedContextIterator.hasNext() )
             {
                 int ldapUrlLength = ( ( LdapURL ) replicatedContextIterator.next() ).getNbBytes();
-                replicatedContextsLength += 1 + Length.getNbBytes( ldapUrlLength ) + ldapUrlLength;
+                replicatedContextsLength += 1 + TLV.getNbBytes( ldapUrlLength ) + ldapUrlLength;
             }
 
-            gracefulDisconnectSequenceLength += 1 + Length.getNbBytes( replicatedContextsLength )
+            gracefulDisconnectSequenceLength += 1 + TLV.getNbBytes( replicatedContextsLength )
                 + replicatedContextsLength;
         }
 
-        return 1 + Length.getNbBytes( gracefulDisconnectSequenceLength ) + gracefulDisconnectSequenceLength;
+        return 1 + TLV.getNbBytes( gracefulDisconnectSequenceLength ) + gracefulDisconnectSequenceLength;
     }
 
 
     /**
      * Encodes the gracefulDisconnect extended operation.
      * 
-     * @param buffer
-     *            The encoded sink
+     * @param buffer The encoded sink
      * @return A ByteBuffer that contains the encoded PDU
-     * @throws EncoderException
-     *             If anything goes wrong.
+     * @throws EncoderException If anything goes wrong.
      */
     public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
     {
@@ -166,7 +167,7 @@
         ByteBuffer bb = ByteBuffer.allocate( computeLength() );
 
         bb.put( UniversalTag.SEQUENCE_TAG );
-        bb.put( Length.getBytes( gracefulDisconnectSequenceLength ) );
+        bb.put( TLV.getBytes( gracefulDisconnectSequenceLength ) );
 
         if ( timeOffline != 0 )
         {
@@ -176,14 +177,14 @@
         if ( delay != 0 )
         {
             bb.put( ( byte ) GracefulActionConstants.GRACEFUL_ACTION_DELAY_TAG );
-            bb.put( ( byte ) Length.getNbBytes( delay ) );
+            bb.put( ( byte ) TLV.getNbBytes( delay ) );
             bb.put( Value.getBytes( delay ) );
         }
 
         if ( replicatedContexts.size() != 0 )
         {
             bb.put( UniversalTag.SEQUENCE_TAG );
-            bb.put( Length.getBytes( replicatedContextsLength ) );
+            bb.put( TLV.getBytes( replicatedContextsLength ) );
 
             Iterator replicatedContextIterator = replicatedContexts.iterator();
 

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectContainer.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectContainer.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectContainer.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectContainer.java Tue Oct  3 06:49:43 2006
@@ -22,7 +22,6 @@
 
 import org.apache.directory.shared.asn1.ber.AbstractContainer;
 import org.apache.directory.shared.asn1.ber.IAsn1Container;
-import org.apache.directory.shared.asn1.ber.grammar.IGrammar;
 
 
 /**
@@ -43,14 +42,8 @@
     public GracefulDisconnectContainer()
     {
         super();
-        currentGrammar = 0;
-        grammars = new IGrammar[GracefulDisconnectStatesEnum.NB_GRAMMARS];
-        grammarStack = new IGrammar[1];
         stateStack = new int[1];
-        nbGrammars = 0;
-
-        grammars[GracefulDisconnectStatesEnum.GRACEFUL_DISCONNECT_GRAMMAR] = GracefulDisconnectGrammar.getInstance();
-        grammarStack[currentGrammar] = grammars[GracefulDisconnectStatesEnum.GRACEFUL_DISCONNECT_GRAMMAR];
+        grammar = GracefulDisconnectGrammar.getInstance();
         states = GracefulDisconnectStatesEnum.getInstance();
     }
 
@@ -68,8 +61,7 @@
      * Set a GracefulDisconnect Object into the container. It will be completed
      * by the ldapDecoder.
      * 
-     * @param control
-     *            the GracefulShutdown to set.
+     * @param control the GracefulShutdown to set.
      */
     public void setGracefulDisconnect( GracefulDisconnect gracefulDisconnect )
     {

Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectDecoder.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectDecoder.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectDecoder.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectDecoder.java Tue Oct  3 06:49:43 2006
@@ -44,11 +44,9 @@
      * Decode a PDU which must contain a GracefulDisconnect extended operation.
      * Note that the stream of bytes much contain a full PDU, not a partial one.
      * 
-     * @param stream
-     *            The bytes to be decoded
+     * @param stream The bytes to be decoded
      * @return An GracefulDisconnect object
-     * @throws DecoderException
-     *             If the decoding failed
+     * @throws DecoderException If the decoding failed
      */
     public Asn1Object decode( byte[] stream ) throws DecoderException, NamingException
     {



Mime
View raw message