You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2011/01/29 09:23:06 UTC
svn commit: r1064981 [2/8] - in /directory:
apacheds/trunk/core-jndi/src/main/java/org/apache/directory/server/core/jndi/
apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/
apacheds/trunk/protocol-ldap/src/main/java/org/apach...
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java?rev=1064981&r1=1064980&r2=1064981&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/LdapMessageContainer.java Sat Jan 29 08:23:02 2011
@@ -21,32 +21,12 @@ package org.apache.directory.shared.ldap
import org.apache.directory.shared.asn1.ber.AbstractContainer;
+import org.apache.directory.shared.asn1.ber.Asn1Container;
import org.apache.directory.shared.ldap.codec.controls.ControlDecorator;
-import org.apache.directory.shared.ldap.codec.decorators.AddRequestDecorator;
-import org.apache.directory.shared.ldap.codec.decorators.AddResponseDecorator;
-import org.apache.directory.shared.ldap.codec.decorators.BindRequestDecorator;
import org.apache.directory.shared.ldap.codec.decorators.MessageDecorator;
-import org.apache.directory.shared.ldap.codec.decorators.ModifyRequestDecorator;
-import org.apache.directory.shared.ldap.codec.decorators.SearchRequestDecorator;
-import org.apache.directory.shared.ldap.codec.decorators.SearchResultEntryDecorator;
import org.apache.directory.shared.ldap.message.spi.BinaryAttributeDetector;
-import org.apache.directory.shared.ldap.model.message.AbandonRequest;
-import org.apache.directory.shared.ldap.model.message.BindResponse;
-import org.apache.directory.shared.ldap.model.message.CompareRequest;
-import org.apache.directory.shared.ldap.model.message.CompareResponse;
-import org.apache.directory.shared.ldap.model.message.DeleteRequest;
-import org.apache.directory.shared.ldap.model.message.DeleteResponse;
-import org.apache.directory.shared.ldap.model.message.ExtendedRequest;
-import org.apache.directory.shared.ldap.model.message.ExtendedResponse;
-import org.apache.directory.shared.ldap.model.message.IntermediateResponse;
-import org.apache.directory.shared.ldap.model.message.ModifyDnRequest;
-import org.apache.directory.shared.ldap.model.message.ModifyDnResponse;
-import org.apache.directory.shared.ldap.model.message.ModifyRequest;
-import org.apache.directory.shared.ldap.model.message.ModifyResponse;
-import org.apache.directory.shared.ldap.model.message.SearchRequest;
-import org.apache.directory.shared.ldap.model.message.SearchResultDone;
-import org.apache.directory.shared.ldap.model.message.SearchResultReference;
-import org.apache.directory.shared.ldap.model.message.UnbindRequest;
+import org.apache.directory.shared.ldap.model.message.Control;
+import org.apache.directory.shared.ldap.model.message.Message;
/**
@@ -56,10 +36,10 @@ import org.apache.directory.shared.ldap.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-public class LdapMessageContainer extends AbstractContainer
+public class LdapMessageContainer<E extends MessageDecorator<? extends Message>> extends AbstractContainer
{
/** The Message decorator to store various temporary values */
- private MessageDecorator messageDecorator;
+ private E messageDecorator;
/** checks if attribute is binary */
private final BinaryAttributeDetector binaryAttributeDetector;
@@ -68,16 +48,19 @@ public class LdapMessageContainer extend
private int messageId;
/** The current control */
- private ControlDecorator currentControl;
+ private ControlDecorator<? extends Control> currentControl;
+
+ /** The codec service */
+ private final ILdapCodecService codec;
/**
* Creates a new LdapMessageContainer object. We will store ten grammars,
* it's enough ...
*/
- public LdapMessageContainer()
+ public LdapMessageContainer( ILdapCodecService codec )
{
- this( new BinaryAttributeDetector()
+ this( codec, new BinaryAttributeDetector()
{
public boolean isBinary( String attributeId )
{
@@ -93,9 +76,10 @@ public class LdapMessageContainer extend
*
* @param binaryAttributeDetector checks if an attribute is binary
*/
- public LdapMessageContainer( BinaryAttributeDetector binaryAttributeDetector )
+ public LdapMessageContainer( ILdapCodecService codec, BinaryAttributeDetector binaryAttributeDetector )
{
super();
+ this.codec = codec;
this.stateStack = new int[10];
this.grammar = LdapMessageGrammar.getInstance();
this.binaryAttributeDetector = binaryAttributeDetector;
@@ -104,218 +88,22 @@ public class LdapMessageContainer extend
/**
- * @return Returns the ldapMessage.
- */
- public MessageDecorator getMessage()
- {
- return messageDecorator;
- }
-
-
- /**
- * @return Returns the AbandonRequest stored in the container
- */
- public AbandonRequest getAbandonRequest()
- {
- return ( AbandonRequest ) messageDecorator.getDecoratedMessage();
- }
-
-
- /**
- * @return Returns the AddRequest stored in the container
- */
- public AddRequestDecorator getAddRequest()
- {
- return ( AddRequestDecorator ) messageDecorator;
- }
-
-
- /**
- * @return Returns the AddResponse stored in the container
- */
- public AddResponseDecorator getAddResponse()
- {
- return ( AddResponseDecorator ) messageDecorator;
- }
-
-
- /**
- * @return Returns the BindRequest stored in the container
- */
- public BindRequestDecorator getBindRequest()
- {
- return ( BindRequestDecorator ) messageDecorator;
- }
-
-
- /**
- * @return Returns the BindResponse stored in the container
- */
- public BindResponse getBindResponse()
- {
- return ( BindResponse ) messageDecorator;
- }
-
-
- /**
- * @return Returns the CompareRequest stored in the container
- */
- public CompareRequest getCompareRequest()
- {
- return ( CompareRequest ) messageDecorator;
- }
-
-
- /**
- * @return Returns the CompareResponse stored in the container
- */
- public CompareResponse getCompareResponse()
- {
- return ( CompareResponse ) messageDecorator;
- }
-
-
- /**
- * @return Returns the DelRequest stored in the container
- */
- public DeleteRequest getDeleteRequest()
- {
- return ( DeleteRequest ) messageDecorator;
- }
-
-
- /**
- * @return Returns the DelResponse stored in the container
- */
- public DeleteResponse getDeleteResponse()
- {
- return ( DeleteResponse ) messageDecorator;
- }
-
-
- /**
- * @return Returns the ExtendedRequest stored in the container
- */
- public ExtendedRequest getExtendedRequest()
- {
- return (ExtendedRequest) messageDecorator;
- }
-
-
- /**
- * @return Returns the ExtendedResponse stored in the container
- */
- public ExtendedResponse getExtendedResponse()
- {
- return ( ExtendedResponse ) messageDecorator;
- }
-
-
- /**
- * @return Returns the IntermediateResponse stored in the container
- */
- public IntermediateResponse getIntermediateResponse()
- {
- return ( IntermediateResponse ) messageDecorator;
- }
-
-
- /**
- * @return Returns the ModifyRequestDecorator stored in the container
- */
- public ModifyRequestDecorator getModifyRequestDecorator()
- {
- return ( ModifyRequestDecorator ) messageDecorator;
- }
-
-
- /**
- * @return Returns the ModifyRequest stored in the container
- */
- public ModifyRequest getModifyRequest()
- {
- return ( ModifyRequest ) messageDecorator;
- }
-
-
- /**
- * @return Returns the ModifyResponse stored in the container
- */
- public ModifyResponse getModifyResponse()
- {
- return ( ModifyResponse ) messageDecorator;
- }
-
-
- /**
- * @return Returns the ModifyDnRequest stored in the container
- */
- public ModifyDnRequest getModifyDnRequest()
- {
- return ( ModifyDnRequest ) messageDecorator;
- }
-
-
- /**
- * @return Returns the ModifyDnResponse stored in the container
- */
- public ModifyDnResponse getModifyDnResponse()
- {
- return ( ModifyDnResponse ) messageDecorator;
- }
-
-
- /**
- * @return Returns the SearchRequest stored in the container
- */
- public SearchRequest getSearchRequest()
- {
- return ( SearchRequest ) messageDecorator;
- }
-
-
- /**
- * @return Returns the SearchRequest stored in the container
- */
- public SearchRequestDecorator getSearchRequestDecorator()
- {
- return ( SearchRequestDecorator ) messageDecorator;
- }
-
-
- /**
- * @return Returns the SearchResultEntry stored in the container
- */
- public SearchResultEntryDecorator getSearchResultEntry()
- {
- return ( SearchResultEntryDecorator ) messageDecorator;
- }
-
-
- /**
- * @return Returns the SearchResultReference stored in the container
- */
- public SearchResultReference getSearchResultReference()
- {
- return ( SearchResultReference ) messageDecorator;
- }
-
-
- /**
- * @return Returns the SearchResultDone stored in the container
+ * Gets the {@link ILdapCodecService} associated with this {@link Asn1Container}.
+ *
+ * @return
*/
- public SearchResultDone getSearchResultDone()
+ public ILdapCodecService getLdapCodecService()
{
- return ( SearchResultDone ) messageDecorator;
+ return codec;
}
-
-
+
+
/**
- * @return Returns the UnbindRequest stored in the container
+ * @return Returns the ldapMessage.
*/
- public UnbindRequest getUnbindRequest()
+ public E getMessage()
{
- return ( UnbindRequest ) messageDecorator.getDecoratedMessage();
+ return messageDecorator;
}
@@ -325,9 +113,9 @@ public class LdapMessageContainer extend
*
* @param message The message to set.
*/
- public void setMessage( MessageDecorator message )
+ public void setMessage( E messageDecorator )
{
- messageDecorator = message;
+ this.messageDecorator = messageDecorator;
}
@@ -377,7 +165,7 @@ public class LdapMessageContainer extend
/**
* @return the current control being created
*/
- public ControlDecorator getCurrentControl()
+ public ControlDecorator<? extends Control> getCurrentControl()
{
return currentControl;
}
@@ -387,7 +175,7 @@ public class LdapMessageContainer extend
* Store a newly created control
* @param currentControl The control to store
*/
- public void setCurrentControl( ControlDecorator currentControl )
+ public void setCurrentControl( ControlDecorator<? extends Control> currentControl )
{
this.currentControl = currentControl;
}