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 2008/06/18 04:55:14 UTC

svn commit: r669066 - in /directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context: AbstractOperationContext.java AddOperationContext.java BindOperationContext.java OperationContext.java

Author: akarasulu
Date: Tue Jun 17 19:55:14 2008
New Revision: 669066

URL: http://svn.apache.org/viewvc?rev=669066&view=rev
Log:
adding placeholder for caching the target entry to all OperationContexts instead of a select few and removing them from Add and Modify which now inherits from base classes and interfaces

Modified:
    directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/AbstractOperationContext.java
    directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddOperationContext.java
    directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindOperationContext.java
    directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/OperationContext.java

Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/AbstractOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/AbstractOperationContext.java?rev=669066&r1=669065&r2=669066&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/AbstractOperationContext.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/AbstractOperationContext.java Tue Jun 17 19:55:14 2008
@@ -53,6 +53,9 @@
     /** The DN associated with the context */
     protected LdapDN dn;
     
+    /** The entry associated with the target entry of this OperationContext */
+    private ClonedServerEntry entry;
+    
     /** The associated request's controls */
     protected Map<String, Control> requestControls = new HashMap<String, Control>(4);
 
@@ -438,4 +441,22 @@
             this.referralHandlingMode = ReferralHandlingMode.THROW;
         }
     }
+
+
+    /**
+     * @param entry the entry to set
+     */
+    public void setEntry( ClonedServerEntry entry )
+    {
+        this.entry = entry;
+    }
+
+
+    /**
+     * @return the entry
+     */
+    public ClonedServerEntry getEntry()
+    {
+        return entry;
+    }
 }

Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddOperationContext.java?rev=669066&r1=669065&r2=669066&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddOperationContext.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddOperationContext.java Tue Jun 17 19:55:14 2008
@@ -103,26 +103,6 @@
 
 
     /**
-     * @return The added attributes
-     */
-    public ServerEntry getEntry()
-    {
-        return entry;
-    }
-
-
-    /**
-     * Set the added attributes
-     * 
-     * @param entry The added attributes
-     */
-    public void setEntry( ServerEntry entry )
-    {
-        this.entry = entry;
-    }
-
-
-    /**
      * @return the operation name
      */
     public String getName()

Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindOperationContext.java?rev=669066&r1=669065&r2=669066&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindOperationContext.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindOperationContext.java Tue Jun 17 19:55:14 2008
@@ -86,6 +86,8 @@
 
     private ReferralHandlingMode referralHandlingMode;
 
+    private ClonedServerEntry entry;
+
     
     /**
      * Creates a new instance of BindOperationContext.
@@ -478,4 +480,16 @@
     {
         this.referralHandlingMode = referralHandlingMode;
     }
+
+
+    public ClonedServerEntry getEntry()
+    {
+        return entry;
+    }
+
+
+    public void setEntry( ClonedServerEntry entry )
+    {
+        this.entry = entry;
+    }
 }

Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/OperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/OperationContext.java?rev=669066&r1=669065&r2=669066&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/OperationContext.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/interceptor/context/OperationContext.java Tue Jun 17 19:55:14 2008
@@ -117,6 +117,42 @@
 
     
     /**
+     * Gets the server entry associated with the target DN of this 
+     * OperationContext.  The entry associated with the DN may be altered 
+     * during the course of processing an LDAP operation through the 
+     * InterceptorChain.  This place holder is put here to prevent the need
+     * for repetitive lookups of the target entry.  Furthermore the returned
+     * entry may be altered by any Interceptor in the chain and this is why a
+     * ClonedServerEntry is returned instead of a ServerEntry.  A 
+     * ClonedServerEntry has an immutable reference to the original state of
+     * the target entry.  The original state can be accessed via a call to
+     * {@link ClonedServerEntry#getOriginalEntry()}.  The return value may be 
+     * null in which case any lookup performed to access it may set it to 
+     * prevent the need for subsequent lookups.
+     * 
+     * Also note that during the course of handling some operations such as 
+     * those that rename, move or rename and move the entry, may alter the DN 
+     * of this entry.  Interceptor implementors should not presume the DN or 
+     * the values contained in this entry are currently what is present in the 
+     * DIT.  The original entry contained in the ClonedServerEntry shoudl be 
+     * used as the definitive source of information about the state of the 
+     * entry in the DIT before returning from the Partition subsystem.
+     * 
+     * @return target entry associated with the DN of this OperationContext
+     */
+    ClonedServerEntry getEntry();
+    
+    
+    /**
+     * Sets the server entry associated with the target DN of this 
+     * OperationContext.
+     *
+     * @param entry the entry whose DN is associated with this OperationContext.
+     */
+    void setEntry( ClonedServerEntry entry );
+    
+    
+    /**
      * Adds a response control to this operation.
      *
      * @param responseControl the response control to add to this operation