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 2005/04/15 07:43:51 UTC

svn commit: r161401 - directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ldap/codec/LdapMessageContainer.java

Author: elecharny
Date: Thu Apr 14 22:43:50 2005
New Revision: 161401

URL: http://svn.apache.org/viewcvs?view=rev&rev=161401
Log:
Changed the inheritance of this class, leading to a lot of mermber suppression in this class.

Modified:
    directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ldap/codec/LdapMessageContainer.java

Modified: directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ldap/codec/LdapMessageContainer.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ldap/codec/LdapMessageContainer.java?view=diff&r1=161400&r2=161401
==============================================================================
--- directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ldap/codec/LdapMessageContainer.java (original)
+++ directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ldap/codec/LdapMessageContainer.java Thu Apr 14 22:43:50 2005
@@ -16,12 +16,16 @@
  */
 package org.apache.asn1.ldap.codec;
 
+import org.apache.asn1.ber.AbstractContainer;
 import org.apache.asn1.ber.containers.IAsn1Container;
 import org.apache.asn1.ber.grammar.IGrammar;
-import org.apache.asn1.ber.tlv.TLV;
+import org.apache.asn1.ber.grammar.StatesEnum;
+import org.apache.asn1.ldap.codec.grammars.BindRequestGrammar;
+import org.apache.asn1.ldap.codec.grammars.BindResponseGrammar;
+import org.apache.asn1.ldap.codec.grammars.LdapControlGrammar;
+import org.apache.asn1.ldap.codec.grammars.LdapMessageGrammar;
+import org.apache.asn1.ldap.codec.grammars.LdapResultGrammar;
 import org.apache.asn1.ldap.pojo.LdapMessagePOJO;
-import org.apache.asn1.util.pools.LocalPoolManager;
-import org.apache.asn1.util.pools.PoolObject;
 
 
 /**
@@ -31,38 +35,13 @@
  *  
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class LdapMessageContainer extends PoolObject implements IAsn1Container //extends AbstractLdapContainer
+public class LdapMessageContainer extends AbstractContainer implements IAsn1Container //extends AbstractLdapContainer
 {
     //~ Instance fields ----------------------------------------------------------------------------
 
-    /** The current state of the decoding */
-    protected int state;
-
-    /** The current transition */
-    protected int transition;
-
-    /** The current TLV */
-    protected TLV tlv;
-
-    /** The pool that is associated with this container */
-    protected LocalPoolManager poolManager;
-
-    /** The grammars that are used.
-     * It's a stack as we can switch grammars */
-    protected IGrammar[] grammarStack;
-    
-    /** All the possible grammars */
-    private IGrammar[] grammars;
-    
-    /** The number of stored grammars */ 
-    private int nbGrammars;
-    
-    /** The current grammar */
-    private int currentGrammar;
-
     /** The ldap message */
     private LdapMessagePOJO ldapMessage;
-
+    
     //~ Constructors -------------------------------------------------------------------------------
 
     /**
@@ -72,10 +51,18 @@
     public LdapMessageContainer()
     {
         super( );
-        currentGrammar = -1;
+        currentGrammar = 0;
         grammars = new IGrammar[10];
         grammarStack = new IGrammar[10];
         nbGrammars = 0;
+
+        grammars[StatesEnum.LDAP_MESSAGE_GRAMMAR] = LdapMessageGrammar.getInstance(); 
+        grammars[StatesEnum.LDAP_CONTROL_GRAMMAR] = LdapControlGrammar.getInstance(); 
+        grammars[StatesEnum.BIND_REQUEST_GRAMMAR] = BindRequestGrammar.getInstance(); 
+        grammars[StatesEnum.LDAP_RESULT_GRAMMAR]  = LdapResultGrammar.getInstance(); 
+        grammars[StatesEnum.BIND_RESPONSE_GRAMMAR] = BindResponseGrammar.getInstance(); 
+
+        grammarStack[currentGrammar] = grammars[StatesEnum.LDAP_MESSAGE_GRAMMAR];
     }
 
     //~ Methods ------------------------------------------------------------------------------------
@@ -89,18 +76,15 @@
         transition = 0;
         ldapMessage.free();
         
-        for (int i = 0; i < nbGrammars; i++ )
-        {
-            grammars[i] = null;
-        }
-        
-        for (int i = 0; i < grammarStack.length; i++ )
+        for (int i = 0; i <= currentGrammar; i++ )
         {
             grammarStack[i] = null;
         }
         
         currentGrammar = 0;
         nbGrammars = 0;
+
+        grammarStack[currentGrammar] = grammars[StatesEnum.LDAP_MESSAGE_GRAMMAR];
         
         super.free();
     }
@@ -123,134 +107,5 @@
     public void setLdapMessage( LdapMessagePOJO ldapMessage )
     {
         this.ldapMessage = ldapMessage;
-    }
-
-    /**
-     * Associate a pool Manager to the container
-     *
-     * @param poolManager The pool manager
-     */
-    public void setPoolManager( LocalPoolManager poolManager )
-    {
-        this.poolManager = poolManager;
-    }
-
-    /**
-     * @return The poolManager associated with this container
-     */
-    public LocalPoolManager getPoolManager()
-    {
-        return poolManager;
-    }
-
-    /**
-     * @return Returns the grammar used to decode a LdapMessage.
-     */
-    public IGrammar getGrammar()
-    {
-        return grammarStack[currentGrammar];
-    }
-
-    /**
-     * Add a IGrammar to use
-     *
-     * @param grammar The grammar to add.
-     */
-    public void addGrammar( IGrammar grammar )
-    {
-        grammars[nbGrammars++] = grammar;
-    }
-
-    /**
-     * Switch to another grammar
-     *
-     * @param grammar The grammar to add.
-     */
-    public void switchGrammar( int grammar )
-    {
-        currentGrammar ++;
-        grammarStack[currentGrammar] = grammars[grammar];
-    }
-
-    /**
-     * restore the previous grammar (the one before a switch has occured)
-     *
-     * @param grammar The grammar to add.
-     */
-    public void restoreGrammar()
-    {
-        grammarStack[currentGrammar] = null;
-        currentGrammar --;
-    }
-
-    /**
-     * Set the current TLV
-     *
-     * @param tlv The current TLV
-     */
-    public void setCurrentTLV( TLV tlv )
-    {
-        this.tlv = tlv;
-    }
-
-    /**
-     * @return Returns the current TLV being decoded
-     */
-    public TLV getCurrentTLV()
-    {
-
-        return this.tlv;
-    }
-
-    /**
-     * @return Returns the current grammar state
-     */
-    public int getState()
-    {
-        return state;
-    }
-
-    /**
-     * Set the new current state
-     *
-     * @param state The new state
-     */
-    public void setState( int state )
-    {
-        this.state = state;
-    }
-
-    /**
-     * @return Returns the transition from the previous state to the new 
-     * state
-     */
-    public int getTransition()
-    {
-        return transition;
-    }
-
-    /**
-     * Update the transition from a state to another
-     *
-     * @param transition The transition to set
-     */
-    public void setTransition( int transition )
-    {
-        this.transition = transition;
-    }
-    
-    /**
-     * @return Returns the currentGrammar.
-     */
-    public int getCurrentGrammar() {
-        return currentGrammar;
-    }
-
-    /**
-     * @return Set the grammar that will be used to start a decoding.
-     */
-    public void setInitGrammar(int grammar) {
-        currentGrammar ++;
-        grammarStack[currentGrammar] = grammars[grammar];
     }
 }