You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2006/10/03 15:49:46 UTC
svn commit: r452497 [1/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...
Author: elecharny
Date: Tue Oct 3 06:49:43 2006
New Revision: 452497
URL: http://svn.apache.org/viewvc?view=rev&rev=452497
Log:
Injected the modification done in 1.0 branch into the trunk
Modified:
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/AttributeValueAssertion.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/Control.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/ControlDecoder.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapConstants.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessage.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageGrammar.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapResponse.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapResult.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapStatesEnum.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/ResponseCarryingException.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixDecoder.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixEncoder.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/abandon/AbandonRequest.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/add/AddRequest.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/add/AddResponse.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/BindRequest.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/BindResponse.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/SaslCredentials.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/bind/SimpleAuthentication.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareRequest.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/compare/CompareResponse.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelRequest.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/del/DelResponse.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/ExtendedRequest.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/ExtendedResponse.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulAction.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnect.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectContainer.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectDecoder.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectGrammar.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectStatesEnum.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulShutdown.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulShutdownContainer.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulShutdownDecoder.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulShutdownGrammar.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulShutdownStatesEnum.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedure.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureCall.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureCallContainer.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureCallGrammar.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureCallStatesEnum.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureContainer.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureGrammar.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureStatesEnum.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/modify/ModifyRequest.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/modify/ModifyResponse.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/modifyDn/ModifyDNRequest.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/modifyDn/ModifyDNResponse.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/AndFilter.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/AttributeValueAssertionFilter.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/ConnectorFilter.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/ExtensibleMatchFilter.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/Filter.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/NotFilter.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/OrFilter.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/PresentFilter.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/SearchRequest.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/SearchResultDone.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/SearchResultEntry.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/SearchResultReference.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/SubstringFilter.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/ChangeType.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/EntryChangeControl.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/EntryChangeControlContainer.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/EntryChangeControlDecoder.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/EntryChangeControlGrammar.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/EntryChangeControlStatesEnum.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/PSearchControl.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/PSearchControlContainer.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/PSearchControlDecoder.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/PSearchControlGrammar.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/PSearchControlStatesEnum.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/SubEntryControl.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/SubEntryControlContainer.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/SubEntryControlDecoder.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/SubEntryControlGrammar.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/search/controls/SubEntryControlStatesEnum.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/unbind/UnBindRequest.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/util/LdapURL.java
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/util/StringTools.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/LdapDecoderTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/bind/BindRequestTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/extended/ExtendedResponseTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/extended/operations/GracefulDisconnectTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/modify/ModifyRequestTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestMatchingRuleAssertionTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestSubstringTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchResultEntryTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/controls/EntryChangeControlTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/controls/PSearchControlTest.java
directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/codec/unbind/UnBindRequestTest.java
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/AttributeValueAssertion.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/AttributeValueAssertion.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/AttributeValueAssertion.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/AttributeValueAssertion.java Tue Oct 3 06:49:43 2006
@@ -20,13 +20,16 @@
package org.apache.directory.shared.ldap.codec;
-import org.apache.directory.shared.ldap.codec.util.LdapString;
-
-
/**
- * A class to store an attribute value assertion. Tha grammar is :
- * AttributeValueAssertion ::= SEQUENCE { attributeDesc AttributeDescription,
- * assertionValue AssertionValue } AttributeDescription ::= LDAPString
+ * A class to store an attribute value assertion.
+ * The grammar is :
+ *
+ * AttributeValueAssertion ::= SEQUENCE {
+ * attributeDesc AttributeDescription,
+ * assertionValue AssertionValue }
+ *
+ * AttributeDescription ::= LDAPString
+ *
* AssertionValue ::= OCTET STRING
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
@@ -37,7 +40,7 @@
// ----------------------------------------------------------------------------
/** The attribute description */
- private LdapString attributeDesc;
+ private String attributeDesc;
/** The assertion value */
private Object assertionValue;
@@ -60,8 +63,7 @@
/**
* Set the assertion value
*
- * @param assertionValue
- * The assertionValue to set.
+ * @param assertionValue The assertionValue to set.
*/
public void setAssertionValue( Object assertionValue )
{
@@ -76,17 +78,16 @@
*/
public String getAttributeDesc()
{
- return ( ( attributeDesc == null ) ? null : attributeDesc.getString() );
+ return 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;
}
@@ -95,8 +96,7 @@
/**
* Get a String representation of an AttributeValueAssertion
*
- * @param tabs
- * The spacing to be put before the string
+ * @param tabs The spacing to be put before the string
* @return An AttributeValueAssertion String
*/
public String toString( String tabs )
@@ -116,8 +116,7 @@
* Get a String representation of an AttributeValueAssertion, as of RFC
* 2254.
*
- * @param filterType
- * The filter type
+ * @param filterType The filter type
* @return An AttributeValueAssertion String
*/
public String toStringRFC2254( int filterType )
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/Control.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/Control.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/Control.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/Control.java Tue Oct 3 06:49:43 2006
@@ -24,11 +24,10 @@
import java.nio.ByteBuffer;
import org.apache.directory.shared.asn1.Asn1Object;
-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.util.LdapString;
import org.apache.directory.shared.ldap.util.StringTools;
@@ -43,7 +42,7 @@
// ----------------------------------------------------------------------------
/** The control type */
- private LdapString controlType;
+ private String controlType;
/** The criticality (default value is false) */
private boolean criticality = false;
@@ -67,17 +66,16 @@
*/
public String getControlType()
{
- return ( controlType == null ? "" : controlType.toString() );
+ return controlType == null ? "" : controlType;
}
/**
* Set the control type
*
- * @param controlType
- * An OID to store
+ * @param controlType The OID to be stored
*/
- public void setControlType( LdapString controlType )
+ public void setControlType( String controlType )
{
this.controlType = controlType;
}
@@ -108,8 +106,7 @@
/**
* Set the encoded control value
*
- * @param encodedValue
- * The encoded control value to store
+ * @param encodedValue The encoded control value to store
*/
public void setEncodedValue( byte[] encodedValue )
{
@@ -136,8 +133,7 @@
/**
* Set the control value
*
- * @param controlValue
- * The control value to store
+ * @param controlValue The control value to store
*/
public void setControlValue( Object controlValue )
{
@@ -159,8 +155,7 @@
/**
* Set the criticality
*
- * @param criticality
- * The criticality value
+ * @param criticality The criticality value
*/
public void setCriticality( boolean criticality )
{
@@ -169,16 +164,25 @@
/**
- * Compute the Control length Control : 0x30 L1 | +--> 0x04 L2 controlType
- * [+--> 0x01 0x01 criticality] [+--> 0x04 L3 controlValue] Control length =
- * Length(0x30) + length(L1) + Length(0x04) + Length(L2) + L2 [+
- * Length(0x01) + 1 + 1] [+ Length(0x04) + Length(L3) + L3]
+ * Compute the Control length
+ * Control :
+ *
+ * 0x30 L1
+ * |
+ * +--> 0x04 L2 controlType
+ * [+--> 0x01 0x01 criticality]
+ * [+--> 0x04 L3 controlValue]
+ *
+ * Control length = Length(0x30) + length(L1)
+ * + Length(0x04) + Length(L2) + L2
+ * [+ Length(0x01) + 1 + 1]
+ * [+ Length(0x04) + Length(L3) + L3]
*/
public int computeLength()
{
// The controlType
- int controlTypeLengh = controlType.getNbBytes();
- controlLength = 1 + Length.getNbBytes( controlTypeLengh ) + controlTypeLengh;
+ int controlTypeLengh = StringTools.getBytesUtf8( controlType ).length;
+ controlLength = 1 + TLV.getNbBytes( controlTypeLengh ) + controlTypeLengh;
// The criticality, only if true
if ( criticality )
@@ -193,17 +197,17 @@
if ( controlValue instanceof byte[] )
{
controlBytes = ( byte[] ) controlValue;
- controlLength += 1 + Length.getNbBytes( controlBytes.length ) + controlBytes.length;
+ controlLength += 1 + TLV.getNbBytes( controlBytes.length ) + controlBytes.length;
}
else if ( controlValue instanceof String )
{
controlBytes = StringTools.getBytesUtf8( ( String ) controlValue );
- controlLength += 1 + Length.getNbBytes( controlBytes.length ) + controlBytes.length;
+ controlLength += 1 + TLV.getNbBytes( controlBytes.length ) + controlBytes.length;
}
else if ( controlValue instanceof Asn1Object )
{
int length = ( ( Asn1Object ) controlValue ).computeLength();
- controlLength += 1 + Length.getNbBytes( length ) + length;
+ controlLength += 1 + TLV.getNbBytes( length ) + length;
}
else
{
@@ -212,19 +216,21 @@
}
}
- return 1 + Length.getNbBytes( controlLength ) + controlLength;
+ return 1 + TLV.getNbBytes( controlLength ) + controlLength;
}
/**
- * Generate the PDU which contains the Control. Control : 0x30 LL 0x04 LL
- * type [0x01 0x01 criticality] [0x04 LL value]
+ * Generate the PDU which contains the Control.
+ * Control :
+ * 0x30 LL
+ * 0x04 LL type
+ * [0x01 0x01 criticality]
+ * [0x04 LL value]
*
- * @param buffer
- * The encoded PDU
+ * @param buffer The encoded PDU
* @return A ByteBuffer that contaons the PDU
- * @throws EncoderException
- * If anything goes wrong.
+ * @throws EncoderException If anything goes wrong.
*/
public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
{
@@ -234,7 +240,7 @@
buffer.put( UniversalTag.SEQUENCE_TAG );
// The length has been calculated by the computeLength method
- buffer.put( Length.getBytes( controlLength ) );
+ buffer.put( TLV.getBytes( controlLength ) );
}
catch ( BufferOverflowException boe )
{
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/ControlDecoder.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/ControlDecoder.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/ControlDecoder.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/ControlDecoder.java Tue Oct 3 06:49:43 2006
@@ -44,11 +44,9 @@
/**
* Decodes raw ASN.1 encoded bytes into an Asn1Object for the control.
*
- * @param controlBytes
- * the encoded control bytes
+ * @param controlBytes the encoded control bytes
* @return the decoded Asn1Object for the control
- * @throws DecoderException
- * if anything goes wrong
+ * @throws DecoderException if anything goes wrong
*/
Asn1Object decode( byte[] controlBytes ) throws DecoderException, NamingException;
}
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapConstants.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapConstants.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapConstants.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapConstants.java Tue Oct 3 06:49:43 2006
@@ -110,15 +110,15 @@
public static final int EXTENDED_REQUEST_VALUE_TAG = 0x81;
- public static final int SEARCH_MATCHING_RULE_TAG = 0x81;
+ public static final int MATCHING_RULE_ID_TAG = 0x81;
public static final int SUBSTRINGS_FILTER_ANY_TAG = 0x81;
- public static final int MATCHING_RULE_ASSERTION_TYPE_TAG = 0x82;
+ public static final int MATCHING_RULE_TYPE_TAG = 0x82;
public static final int SUBSTRINGS_FILTER_FINAL_TAG = 0x82;
- public static final int SEARCH_MATCH_VALUE_TAG = 0x83;
+ public static final int MATCH_VALUE_TAG = 0x83;
public static final int DN_ATTRIBUTES_FILTER_TAG = 0x84;
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessage.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessage.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessage.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessage.java Tue Oct 3 06:49:43 2006
@@ -21,7 +21,7 @@
import org.apache.directory.shared.asn1.Asn1Object;
-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;
@@ -104,8 +104,7 @@
/**
* Get the Control Object at a specific index
*
- * @param i
- * The index of the Control Object to get
+ * @param i The index of the Control Object to get
* @return The selected Control Object
*/
public Control getControls( int i )
@@ -139,8 +138,7 @@
/**
* Add a control to the Controls array
*
- * @param control
- * The Control to add
+ * @param control The Control to add
*/
public void addControl( Control control )
{
@@ -156,7 +154,7 @@
/**
* Init the controls array
*/
- public void initControl()
+ public void initControls()
{
controls = new ArrayList();
}
@@ -176,8 +174,7 @@
/**
* Set the message ID
*
- * @param messageId
- * The message ID
+ * @param messageId The message ID
*/
public void setMessageId( int messageId )
{
@@ -505,8 +502,7 @@
/**
* Set the ProtocolOP
*
- * @param protocolOp
- * The protocolOp to set.
+ * @param protocolOp The protocolOp to set.
*/
public void setProtocolOP( Asn1Object protocolOp )
{
@@ -515,11 +511,16 @@
/**
- * Compute the LdapMessage length LdapMessage : 0x30 L1 | +--> 0x02 0x0(1-4)
- * [0..2^31-1] (MessageId) +--> protocolOp [+--> Controls] MessageId length =
- * Length(0x02) + length(MessageId) + MessageId.length L1 =
- * length(ProtocolOp) LdapMessage length = Length(0x30) + Length(L1) +
- * MessageId length + L1
+ * Compute the LdapMessage length LdapMessage :
+ * 0x30 L1
+ * |
+ * +--> 0x02 0x0(1-4) [0..2^31-1] (MessageId)
+ * +--> protocolOp
+ * [+--> Controls]
+ *
+ * MessageId length = Length(0x02) + length(MessageId) + MessageId.length
+ * L1 = length(ProtocolOp)
+ * LdapMessage length = Length(0x30) + Length(L1) + MessageId length + L1
*/
public int computeLength()
{
@@ -540,13 +541,13 @@
{
// Controls :
// 0xA0 L3
- // |
- // +--> 0x30 L4
- // +--> 0x30 L5
- // +--> ...
- // +--> 0x30 Li
- // +--> ...
- // +--> 0x30 Ln
+ // |
+ // +--> 0x30 L4
+ // +--> 0x30 L5
+ // +--> ...
+ // +--> 0x30 Li
+ // +--> ...
+ // +--> 0x30 Ln
//
// L3 = Length(0x30) + Length(L5) + L5
// + Length(0x30) + Length(L6) + L6
@@ -568,36 +569,42 @@
}
// Computes the controls length
- controlsLength = controlsSequenceLength; // 1 +
- // Length.getNbBytes(
- // controlsSequenceLength
- // ) +
- // controlsSequenceLength;
+ controlsLength = controlsSequenceLength; // 1 + Length.getNbBytes(
+ // controlsSequenceLength
+ // ) + controlsSequenceLength;
// Now, add the tag and the length of the controls length
- ldapMessageLength += 1 + Length.getNbBytes( controlsSequenceLength ) + controlsSequenceLength;
+ ldapMessageLength += 1 + TLV.getNbBytes( controlsSequenceLength ) + controlsSequenceLength;
}
// finally, calculate the global message size :
// length(Tag) + Length(length) + length
- return 1 + ldapMessageLength + Length.getNbBytes( ldapMessageLength );
+ return 1 + ldapMessageLength + TLV.getNbBytes( ldapMessageLength );
}
/**
- * Generate the PDU which contains the encoded object. The generation is
- * done in two phases : - first, we compute the length of each part and the
- * global PDU length - second, we produce the PDU. 0x30 L1 | +--> 0x02 L2
- * MessageId (L2 = Length(MessageId) +--> ProtocolOp +--> Controls L1 =
- * Length(0x02) + Length(L2) + L2 + Length(ProtocolOp) + Length(Controls)
+ * Generate the PDU which contains the encoded object.
+ *
+ * The generation is done in two phases :
+ * - first, we compute the length of each part and the
+ * global PDU length
+ * - second, we produce the PDU.
+ *
+ * 0x30 L1
+ * |
+ * +--> 0x02 L2 MessageId
+ * +--> ProtocolOp
+ * +--> Controls
+ *
+ * L2 = Length(MessageId)
+ * L1 = Length(0x02) + Length(L2) + L2 + Length(ProtocolOp) + Length(Controls)
* LdapMessageLength = Length(0x30) + Length(L1) + L1
*
- * @param buffer
- * The encoded PDU
+ * @param buffer The encoded PDU
* @return A ByteBuffer that contaons the PDU
- * @throws EncoderException
- * If anything goes wrong.
+ * @throws EncoderException If anything goes wrong.
*/
public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
{
@@ -610,7 +617,7 @@
bb.put( UniversalTag.SEQUENCE_TAG );
// The length has been calculated by the computeLength method
- bb.put( Length.getBytes( ldapMessageLength ) );
+ bb.put( TLV.getBytes( ldapMessageLength ) );
}
catch ( BufferOverflowException boe )
{
@@ -628,11 +635,7 @@
{
// Encode the controls
bb.put( ( byte ) LdapConstants.CONTROLS_TAG );
- bb.put( Length.getBytes( controlsLength ) );
-
- // Encode the control's sequence
- // bb.put( UniversalTag.SEQUENCE_TAG );
- // bb.put( Length.getBytes( controlsSequenceLength ) );
+ bb.put( TLV.getBytes( controlsLength ) );
// Encode each control
Iterator controlIterator = controls.iterator();
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java?view=diff&rev=452497&r1=452496&r2=452497
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java Tue Oct 3 06:49:43 2006
@@ -25,30 +25,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;
-import org.apache.directory.shared.ldap.codec.abandon.AbandonRequestGrammar;
-import org.apache.directory.shared.ldap.codec.add.AddRequestGrammar;
-import org.apache.directory.shared.ldap.codec.add.AddResponseGrammar;
-import org.apache.directory.shared.ldap.codec.bind.BindRequestGrammar;
-import org.apache.directory.shared.ldap.codec.bind.BindResponseGrammar;
-import org.apache.directory.shared.ldap.codec.compare.CompareRequestGrammar;
-import org.apache.directory.shared.ldap.codec.compare.CompareResponseGrammar;
-import org.apache.directory.shared.ldap.codec.del.DelRequestGrammar;
-import org.apache.directory.shared.ldap.codec.del.DelResponseGrammar;
-import org.apache.directory.shared.ldap.codec.extended.ExtendedRequestGrammar;
-import org.apache.directory.shared.ldap.codec.extended.ExtendedResponseGrammar;
-import org.apache.directory.shared.ldap.codec.modify.ModifyRequestGrammar;
-import org.apache.directory.shared.ldap.codec.modify.ModifyResponseGrammar;
-import org.apache.directory.shared.ldap.codec.modifyDn.ModifyDNRequestGrammar;
-import org.apache.directory.shared.ldap.codec.modifyDn.ModifyDNResponseGrammar;
-import org.apache.directory.shared.ldap.codec.search.FilterGrammar;
-import org.apache.directory.shared.ldap.codec.search.MatchingRuleAssertionGrammar;
-import org.apache.directory.shared.ldap.codec.search.SearchRequestGrammar;
-import org.apache.directory.shared.ldap.codec.search.SearchResultDoneGrammar;
-import org.apache.directory.shared.ldap.codec.search.SearchResultEntryGrammar;
-import org.apache.directory.shared.ldap.codec.search.SearchResultReferenceGrammar;
-import org.apache.directory.shared.ldap.codec.search.SubstringFilterGrammar;
-import org.apache.directory.shared.ldap.codec.unbind.UnBindRequestGrammar;
import org.apache.directory.shared.ldap.util.StringTools;
@@ -59,8 +35,7 @@
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-public class LdapMessageContainer extends AbstractContainer implements IAsn1Container // extends
- // AbstractLdapContainer
+public class LdapMessageContainer extends AbstractContainer implements IAsn1Container
{
// ~ Instance fields
// ----------------------------------------------------------------------------
@@ -70,7 +45,12 @@
/** A HashSet which contaons the binary attributes */
private Set binaries;
-
+
+ /** The message ID */
+ private int messageId;
+
+ /** The current control */
+ private Control currentControl;
// ~ Constructors
// -------------------------------------------------------------------------------
@@ -89,45 +69,11 @@
* Creates a new LdapMessageContainer object. We will store ten grammars,
* it's enough ...
*/
- public LdapMessageContainer(Set binaries)
+ public LdapMessageContainer( Set binaries )
{
super();
- currentGrammar = 0;
- grammars = new IGrammar[LdapStatesEnum.NB_GRAMMARS];
- grammarStack = new IGrammar[10];
stateStack = new int[10];
- popAllowedStack = new boolean[10];
- nbGrammars = 0;
-
- grammars[LdapStatesEnum.LDAP_MESSAGE_GRAMMAR] = LdapMessageGrammar.getInstance();
- grammars[LdapStatesEnum.LDAP_CONTROL_GRAMMAR] = LdapControlGrammar.getInstance();
- grammars[LdapStatesEnum.BIND_REQUEST_GRAMMAR] = BindRequestGrammar.getInstance();
- grammars[LdapStatesEnum.LDAP_RESULT_GRAMMAR] = LdapResultGrammar.getInstance();
- grammars[LdapStatesEnum.BIND_RESPONSE_GRAMMAR] = BindResponseGrammar.getInstance();
- grammars[LdapStatesEnum.UNBIND_REQUEST_GRAMMAR] = UnBindRequestGrammar.getInstance();
- grammars[LdapStatesEnum.ABANDON_REQUEST_GRAMMAR] = AbandonRequestGrammar.getInstance();
- grammars[LdapStatesEnum.ADD_RESPONSE_GRAMMAR] = AddResponseGrammar.getInstance();
- grammars[LdapStatesEnum.COMPARE_RESPONSE_GRAMMAR] = CompareResponseGrammar.getInstance();
- grammars[LdapStatesEnum.DEL_RESPONSE_GRAMMAR] = DelResponseGrammar.getInstance();
- grammars[LdapStatesEnum.MODIFY_RESPONSE_GRAMMAR] = ModifyResponseGrammar.getInstance();
- grammars[LdapStatesEnum.MODIFY_DN_RESPONSE_GRAMMAR] = ModifyDNResponseGrammar.getInstance();
- grammars[LdapStatesEnum.SEARCH_RESULT_DONE_GRAMMAR] = SearchResultDoneGrammar.getInstance();
- grammars[LdapStatesEnum.SEARCH_REQUEST_GRAMMAR] = SearchRequestGrammar.getInstance();
- grammars[LdapStatesEnum.FILTER_GRAMMAR] = FilterGrammar.getInstance();
- grammars[LdapStatesEnum.SEARCH_RESULT_ENTRY_GRAMMAR] = SearchResultEntryGrammar.getInstance();
- grammars[LdapStatesEnum.MODIFY_REQUEST_GRAMMAR] = ModifyRequestGrammar.getInstance();
- grammars[LdapStatesEnum.SEARCH_RESULT_REFERENCE_GRAMMAR] = SearchResultReferenceGrammar.getInstance();
- grammars[LdapStatesEnum.ADD_REQUEST_GRAMMAR] = AddRequestGrammar.getInstance();
- grammars[LdapStatesEnum.MODIFY_DN_REQUEST_GRAMMAR] = ModifyDNRequestGrammar.getInstance();
- grammars[LdapStatesEnum.DEL_REQUEST_GRAMMAR] = DelRequestGrammar.getInstance();
- grammars[LdapStatesEnum.COMPARE_REQUEST_GRAMMAR] = CompareRequestGrammar.getInstance();
- grammars[LdapStatesEnum.EXTENDED_REQUEST_GRAMMAR] = ExtendedRequestGrammar.getInstance();
- grammars[LdapStatesEnum.EXTENDED_RESPONSE_GRAMMAR] = ExtendedResponseGrammar.getInstance();
- grammars[LdapStatesEnum.SUBSTRING_FILTER_GRAMMAR] = SubstringFilterGrammar.getInstance();
- grammars[LdapStatesEnum.MATCHING_RULE_ASSERTION_GRAMMAR] = MatchingRuleAssertionGrammar.getInstance();
-
- grammarStack[currentGrammar] = grammars[LdapStatesEnum.LDAP_MESSAGE_GRAMMAR];
-
+ grammar = LdapMessageGrammar.getInstance();
states = LdapStatesEnum.getInstance();
this.binaries = binaries;
@@ -141,7 +87,6 @@
*/
public LdapMessage getLdapMessage()
{
-
return ldapMessage;
}
@@ -150,8 +95,7 @@
* Set a ldapMessage Object into the container. It will be completed by the
* ldapDecoder .
*
- * @param ldapMessage
- * The ldapMessage to set.
+ * @param ldapMessage The message to set.
*/
public void setLdapMessage( LdapMessage ldapMessage )
{
@@ -164,6 +108,8 @@
super.clean();
ldapMessage = null;
+ messageId = 0;
+ currentControl = null;
}
@@ -173,5 +119,38 @@
public boolean isBinary( String id )
{
return binaries.contains( StringTools.lowerCase( StringTools.trim( id ) ) );
+ }
+
+ /**
+ * @return The message ID
+ */
+ public int getMessageId()
+ {
+ return messageId;
+ }
+
+ /**
+ * Set the message ID
+ */
+ public void setMessageId( int messageId )
+ {
+ this.messageId = messageId;
+ }
+
+ /**
+ * @return the current control being created
+ */
+ public Control getCurrentControl()
+ {
+ return currentControl;
+ }
+
+ /**
+ * Store a newly created control
+ * @param currentControl The control to store
+ */
+ public void setCurrentControl( Control currentControl )
+ {
+ this.currentControl = currentControl;
}
}