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/09/08 18:46:23 UTC

svn commit: r441562 - /directory/sandbox/akarasulu/apacheds-2.0/shared/ldap/src/main/java/org/apache/directory/shared/ldap/messages/MessageDecorator.java

Author: elecharny
Date: Fri Sep  8 09:46:22 2006
New Revision: 441562

URL: http://svn.apache.org/viewvc?view=rev&rev=441562
Log:
Implements Encoder and Decoder.
Added a method to initialize the controls list

Modified:
    directory/sandbox/akarasulu/apacheds-2.0/shared/ldap/src/main/java/org/apache/directory/shared/ldap/messages/MessageDecorator.java

Modified: directory/sandbox/akarasulu/apacheds-2.0/shared/ldap/src/main/java/org/apache/directory/shared/ldap/messages/MessageDecorator.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/apacheds-2.0/shared/ldap/src/main/java/org/apache/directory/shared/ldap/messages/MessageDecorator.java?view=diff&rev=441562&r1=441561&r2=441562
==============================================================================
--- directory/sandbox/akarasulu/apacheds-2.0/shared/ldap/src/main/java/org/apache/directory/shared/ldap/messages/MessageDecorator.java (original)
+++ directory/sandbox/akarasulu/apacheds-2.0/shared/ldap/src/main/java/org/apache/directory/shared/ldap/messages/MessageDecorator.java Fri Sep  8 09:46:22 2006
@@ -19,19 +19,29 @@
  */
 package org.apache.directory.shared.ldap.messages;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 import javax.naming.ldap.Control;
 
+import org.apache.directory.shared.ldap.codec.Decoder;
+import org.apache.directory.shared.ldap.codec.Encoder;
+import org.apache.directory.shared.ldap.codec.asn1ber.messages.ControlAsn1Ber;
+
 /**
  * Root Decorator for all LDAP message type decorators.
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public abstract class MessageDecorator implements Message {
+public abstract class MessageDecorator implements Message, Encoder, Decoder 
+{
     /** A reference to the decorated object */
     protected Message message;
     
+    /** The controls decorator Map */
+    protected transient List<ControlDecorator> controlDecorators;
+
     /**
      * Creates a new instance of MessageDecorator, and set the decorated
      * message into the inner member
@@ -44,10 +54,29 @@
     }
     
     /**
+     * Create the array list which will contains the controls
+     * decorators
+     */
+    public void setControlDecorator()
+    {
+        Map<String, Control> controls = message.getControls();  
+        
+        if ( ( controls != null ) && ( controls.isEmpty() == false ) ) 
+        {
+            controlDecorators = new ArrayList<ControlDecorator>();
+            
+            for ( Control control:controls.values() )
+            {
+                controlDecorators.add( new ControlAsn1Ber( control ) );
+            }
+        }
+    }
+    
+    /**
      * Gets the controls associated with this message mapped by OID.
      * 
-     * @return Map of OID strings to Control object instances.
-     * @see Control
+     * @return Map of OID strings to ConcreteControl object instances.
+     * @see ConcreteControl
      */
     public Map<String, Control> getControls()
     {