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 2007/08/23 21:26:01 UTC

svn commit: r569124 [1/3] - in /directory/apacheds/trunk: core/src/main/java/org/apache/directory/server/core/authn/ core/src/main/java/org/apache/directory/server/core/authz/ core/src/main/java/org/apache/directory/server/core/collective/ core/src/mai...

Author: elecharny
Date: Thu Aug 23 12:25:57 2007
New Revision: 569124

URL: http://svn.apache.org/viewvc?rev=569124&view=rev
Log:
Using typed OperationContext instead of the interface in all the interceptors and partitions methods, to avoid many class casts

Added:
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/ListSuffixOperationContext.java
Modified:
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/AuthorizationService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/EventService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/exception/ExceptionService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/kerberos/PasswordPolicyService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/AbstractPartition.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/Partition.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexus.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/BTreePartition.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/referral/ReferralService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerService.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java
    directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java
    directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/MockInterceptor.java
    directory/apacheds/trunk/mitosis/src/main/java/org/apache/directory/mitosis/operation/OperationFactory.java
    directory/apacheds/trunk/mitosis/src/main/java/org/apache/directory/mitosis/service/ReplicationService.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/extended/LaunchDiagnosticUiHandler.java

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java?rev=569124&r1=569123&r2=569124&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java Thu Aug 23 12:25:57 2007
@@ -43,11 +43,20 @@
 import org.apache.directory.server.core.interceptor.NextInterceptor;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
 import org.apache.directory.server.core.interceptor.context.BindOperationContext;
+import org.apache.directory.server.core.interceptor.context.DeleteOperationContext;
+import org.apache.directory.server.core.interceptor.context.EntryOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetMatchedNameOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetRootDSEOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetSuffixOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListSuffixOperationContext;
 import org.apache.directory.server.core.interceptor.context.LookupOperationContext;
+import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
 import org.apache.directory.server.core.interceptor.context.MoveAndRenameOperationContext;
 import org.apache.directory.server.core.interceptor.context.MoveOperationContext;
 import org.apache.directory.server.core.interceptor.context.OperationContext;
 import org.apache.directory.server.core.interceptor.context.RenameOperationContext;
+import org.apache.directory.server.core.interceptor.context.SearchOperationContext;
 import org.apache.directory.server.core.invocation.InvocationStack;
 import org.apache.directory.server.core.jndi.LdapJndiProperties;
 import org.apache.directory.server.core.jndi.ServerContext;
@@ -245,12 +254,12 @@
     }
 
 
-    public void add( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void add( NextInterceptor next, AddOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
             log.debug( "Adding the entry " + 
-            		AttributeUtils.toString( ((AddOperationContext)opContext).getEntry() ) + 
+            		AttributeUtils.toString( opContext.getEntry() ) + 
             		" for DN = '" + opContext.getDn().getUpName() + "'" );
         }
 
@@ -259,7 +268,7 @@
     }
 
 
-    public void delete( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void delete( NextInterceptor next, DeleteOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
@@ -272,7 +281,7 @@
     }
 
 
-    public LdapDN getMatchedName ( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public LdapDN getMatchedName ( NextInterceptor next, GetMatchedNameOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
@@ -284,7 +293,7 @@
     }
 
 
-    public Attributes getRootDSE( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public Attributes getRootDSE( NextInterceptor next, GetRootDSEOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
@@ -296,7 +305,7 @@
     }
 
 
-    public LdapDN getSuffix ( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public LdapDN getSuffix ( NextInterceptor next, GetSuffixOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
@@ -308,7 +317,7 @@
     }
 
 
-    public boolean hasEntry( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public boolean hasEntry( NextInterceptor next, EntryOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
@@ -320,7 +329,7 @@
     }
 
 
-    public NamingEnumeration list( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public NamingEnumeration list( NextInterceptor next, ListOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
@@ -332,7 +341,7 @@
     }
 
 
-    public Iterator listSuffixes ( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public Iterator listSuffixes ( NextInterceptor next, ListSuffixOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
@@ -344,22 +353,20 @@
     }
 
 
-    public Attributes lookup( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public Attributes lookup( NextInterceptor next, LookupOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
-            LookupOperationContext ctx = (LookupOperationContext)opContext;
-            
-            List<String> attrIds = ctx.getAttrsId();
+            List<String> attrIds = opContext.getAttrsId();
             
             if ( ( attrIds != null ) && ( attrIds.size() != 0 ) )
             {
                 String attrs = StringTools.listToString( attrIds );
-                log.debug( "Lookup name = '" + ctx.getDn().getUpName() + "', attributes = " + attrs );
+                log.debug( "Lookup name = '" + opContext.getDn().getUpName() + "', attributes = " + attrs );
             }
             else
             {
-                log.debug( "Lookup name = '" + ctx.getDn().getUpName() + "', no attributes " );
+                log.debug( "Lookup name = '" + opContext.getDn().getUpName() + "', no attributes " );
             }
         }
 
@@ -382,7 +389,7 @@
     }
     
     
-    public void modify( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
@@ -395,13 +402,13 @@
     }
 
     
-    public void rename( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void rename( NextInterceptor next, RenameOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
             log.debug( "Modifying name = '" + opContext.getDn().getUpName() + "', new RDN = '" + 
-                ((RenameOperationContext)opContext).getNewRdn() + "', " +
-                "oldRDN = '" + ((RenameOperationContext)opContext).getDelOldDn() + "'" );
+                opContext.getNewRdn() + "', " +
+                "oldRDN = '" + opContext.getDelOldDn() + "'" );
         }
 
         checkAuthenticated( MessageTypeEnum.MOD_DN_REQUEST );
@@ -410,15 +417,15 @@
     }
 
 
-    public void moveAndRename( NextInterceptor next, OperationContext opContext )
+    public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext opContext )
         throws NamingException
     {
         if ( IS_DEBUG )
         {
             log.debug( "Moving name = '" + opContext.getDn().getUpName() + "' to name = '" + 
-                ((MoveAndRenameOperationContext)opContext).getParent() + "', new RDN = '" + 
-                ((MoveAndRenameOperationContext)opContext).getNewRdn() + "', oldRDN = '" + 
-                ((MoveAndRenameOperationContext)opContext).getDelOldDn() + "'" );
+                opContext.getParent() + "', new RDN = '" + 
+                opContext.getNewRdn() + "', oldRDN = '" + 
+                opContext.getDelOldDn() + "'" );
         }
 
         checkAuthenticated( MessageTypeEnum.MOD_DN_REQUEST );
@@ -427,12 +434,12 @@
     }
 
 
-    public void move( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void move( NextInterceptor next, MoveOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
             log.debug( "Moving name = '" + opContext.getDn().getUpName() + " to name = '" + 
-                ((MoveOperationContext)opContext).getParent().getUpName() + "'" );
+                opContext.getParent().getUpName() + "'" );
         }
 
         checkAuthenticated( MessageTypeEnum.MOD_DN_REQUEST );
@@ -441,7 +448,7 @@
     }
 
 
-    public NamingEnumeration<SearchResult> search( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public NamingEnumeration<SearchResult> search( NextInterceptor next, SearchOperationContext opContext ) throws NamingException
     {
         if ( IS_DEBUG )
         {
@@ -485,7 +492,7 @@
     }
 
 
-    public void bind( NextInterceptor next, OperationContext opContext )
+    public void bind( NextInterceptor next, BindOperationContext opContext )
     throws NamingException
     {   
         // The DN is always normalized here
@@ -519,7 +526,7 @@
         // pick the first matching authenticator type
         Collection<Authenticator> authenticators = null;
         
-        for ( String mechanism:((BindOperationContext)opContext).getMechanisms() )
+        for ( String mechanism:opContext.getMechanisms() )
         {
             authenticators = getAuthenticators( mechanism );
     

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/AuthorizationService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/AuthorizationService.java?rev=569124&r1=569123&r2=569124&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/AuthorizationService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/AuthorizationService.java Thu Aug 23 12:25:57 2007
@@ -46,6 +46,10 @@
 import org.apache.directory.server.core.interceptor.NextInterceptor;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
 import org.apache.directory.server.core.interceptor.context.CompareOperationContext;
+import org.apache.directory.server.core.interceptor.context.DeleteOperationContext;
+import org.apache.directory.server.core.interceptor.context.EntryOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetMatchedNameOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListOperationContext;
 import org.apache.directory.server.core.interceptor.context.LookupOperationContext;
 import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
 import org.apache.directory.server.core.interceptor.context.MoveAndRenameOperationContext;
@@ -392,14 +396,14 @@
      * -------------------------------------------------------------------------------
      */
 
-    public void add( NextInterceptor next, OperationContext addContext ) throws NamingException
+    public void add( NextInterceptor next, AddOperationContext addContext ) throws NamingException
     {
         // Access the principal requesting the operation, and bypass checks if it is the admin
         Invocation invocation = InvocationStack.getInstance().peek();
         LdapPrincipal principal = ( ( ServerContext ) invocation.getCaller() ).getPrincipal();
         LdapDN principalDn = principal.getJndiName();
         
-        Attributes entry = ((AddOperationContext)addContext).getEntry();
+        Attributes entry = addContext.getEntry();
         LdapDN name = addContext.getDn();
 
         // bypass authz code if we are disabled
@@ -466,7 +470,7 @@
     }
 
 
-    public void delete( NextInterceptor next, OperationContext deleteContext ) throws NamingException
+    public void delete( NextInterceptor next, DeleteOperationContext deleteContext ) throws NamingException
     {
     	LdapDN name = deleteContext.getDn();
     	
@@ -508,7 +512,7 @@
     }
 
 
-    public void modify( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws NamingException
     {
         // Access the principal requesting the operation, and bypass checks if it is the admin
         Invocation invocation = InvocationStack.getInstance().peek();
@@ -527,7 +531,7 @@
             return;
         }
 
-        ModificationItemImpl[] mods =((ModifyOperationContext)opContext).getModItems();
+        ModificationItemImpl[] mods = opContext.getModItems();
 
         // bypass authz code but manage caches if operation is performed by the admin
         if ( isPrincipalAnAdministrator( principalDn ) )
@@ -608,7 +612,7 @@
         groupCache.groupModified( name, mods, entry );
     }
 
-    public boolean hasEntry( NextInterceptor next, OperationContext entryContext ) throws NamingException
+    public boolean hasEntry( NextInterceptor next, EntryOperationContext entryContext ) throws NamingException
     {
         LdapDN name = entryContext.getDn();
         Invocation invocation = InvocationStack.getInstance().peek();
@@ -693,7 +697,7 @@
     }
 
 
-    public Attributes lookup( NextInterceptor next, OperationContext lookupContext ) throws NamingException
+    public Attributes lookup( NextInterceptor next, LookupOperationContext lookupContext ) throws NamingException
     {
         Invocation invocation = InvocationStack.getInstance().peek();
         LdapPrincipal principal = ( ( ServerContext ) invocation.getCaller() ).getPrincipal();
@@ -711,14 +715,14 @@
 
         PartitionNexusProxy proxy = invocation.getProxy();
         Attributes entry = proxy.lookup( lookupContext, PartitionNexusProxy.LOOKUP_BYPASS );
-        checkLookupAccess( principal, ((LookupOperationContext)lookupContext).getDn(), entry );
+        checkLookupAccess( principal, lookupContext.getDn(), entry );
         return next.lookup( lookupContext );
     }
 
-    public void rename( NextInterceptor next, OperationContext renameContext ) throws NamingException
+    public void rename( NextInterceptor next, RenameOperationContext renameContext ) throws NamingException
     {
         LdapDN name = renameContext.getDn();
-        String newRdn = ((RenameOperationContext)renameContext).getNewRdn();
+        String newRdn = renameContext.getNewRdn();
         
         // Access the principal requesting the operation, and bypass checks if it is the admin
         Invocation invocation = InvocationStack.getInstance().peek();
@@ -764,7 +768,7 @@
     }
 
 
-    public void moveAndRename( NextInterceptor next, OperationContext moveAndRenameContext )
+    public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext moveAndRenameContext )
         throws NamingException
     {
         LdapDN oriChildName = moveAndRenameContext.getDn();
@@ -842,10 +846,10 @@
     }
 
 
-    public void move( NextInterceptor next, OperationContext moveContext ) throws NamingException
+    public void move( NextInterceptor next, MoveOperationContext moveContext ) throws NamingException
     {
         LdapDN oriChildName = moveContext.getDn();
-        LdapDN newParentName = ((MoveOperationContext)moveContext).getParent();
+        LdapDN newParentName = moveContext.getParent();
         
         // Access the principal requesting the operation, and bypass checks if it is the admin
         Invocation invocation = InvocationStack.getInstance().peek();
@@ -915,7 +919,7 @@
         groupCache.groupRenamed( oriChildName, newName );
     }
 
-    public NamingEnumeration list( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public NamingEnumeration list( NextInterceptor next, ListOperationContext opContext ) throws NamingException
     {
         Invocation invocation = InvocationStack.getInstance().peek();
         ServerLdapContext ctx = ( ServerLdapContext ) invocation.getCaller();
@@ -932,7 +936,7 @@
     }
 
 
-    public NamingEnumeration<SearchResult> search( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public NamingEnumeration<SearchResult> search( NextInterceptor next, SearchOperationContext opContext ) throws NamingException
     {
         Invocation invocation = InvocationStack.getInstance().peek();
         ServerLdapContext ctx = ( ServerLdapContext ) invocation.getCaller();
@@ -941,7 +945,7 @@
         NamingEnumeration<SearchResult> e = next.search( opContext );
 
         boolean isSubschemaSubentryLookup = subschemaSubentryDn.equals( opContext.getDn().getNormName() );
-        SearchControls searchCtls = ((SearchOperationContext)opContext).getSearchControls();
+        SearchControls searchCtls = opContext.getSearchControls();
         boolean isRootDSELookup = opContext.getDn().size() == 0 && searchCtls.getSearchScope() == SearchControls.OBJECT_SCOPE;
 
         if ( isPrincipalAnAdministrator( principalDn ) || !enabled || isRootDSELookup || isSubschemaSubentryLookup )
@@ -960,12 +964,11 @@
     }
     
 
-    public boolean compare( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public boolean compare( NextInterceptor next, CompareOperationContext opContext ) throws NamingException
     {
-    	CompareOperationContext ctx = (CompareOperationContext)opContext;
-    	LdapDN name = ctx.getDn();
-    	String oid = ctx.getOid();
-    	Object value = ctx.getValue();
+    	LdapDN name = opContext.getDn();
+    	String oid = opContext.getOid();
+    	Object value = opContext.getValue();
     	
         // Access the principal requesting the operation, and bypass checks if it is the admin
         Invocation invocation = InvocationStack.getInstance().peek();
@@ -997,7 +1000,7 @@
     }
 
 
-    public LdapDN getMatchedName ( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public LdapDN getMatchedName ( NextInterceptor next, GetMatchedNameOperationContext opContext ) throws NamingException
     {
         // Access the principal requesting the operation, and bypass checks if it is the admin
         Invocation invocation = InvocationStack.getInstance().peek();

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationService.java?rev=569124&r1=569123&r2=569124&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationService.java Thu Aug 23 12:25:57 2007
@@ -41,8 +41,14 @@
 import org.apache.directory.server.core.interceptor.BaseInterceptor;
 import org.apache.directory.server.core.interceptor.Interceptor;
 import org.apache.directory.server.core.interceptor.NextInterceptor;
+import org.apache.directory.server.core.interceptor.context.DeleteOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListOperationContext;
 import org.apache.directory.server.core.interceptor.context.LookupOperationContext;
+import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
+import org.apache.directory.server.core.interceptor.context.MoveAndRenameOperationContext;
+import org.apache.directory.server.core.interceptor.context.MoveOperationContext;
 import org.apache.directory.server.core.interceptor.context.OperationContext;
+import org.apache.directory.server.core.interceptor.context.RenameOperationContext;
 import org.apache.directory.server.core.interceptor.context.SearchOperationContext;
 import org.apache.directory.server.core.invocation.Invocation;
 import org.apache.directory.server.core.invocation.InvocationStack;
@@ -170,7 +176,7 @@
     //    Lookup, search and list operations need to be handled using a filter
     // and so we need access to the filter service.
 
-    public void delete( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public void delete( NextInterceptor nextInterceptor, DeleteOperationContext opContext ) throws NamingException
     {
     	LdapDN name = opContext.getDn();
     	
@@ -260,7 +266,7 @@
      * users to self access these resources.  As far as we're concerned no one but
      * the admin needs access.
      */
-    public void modify( NextInterceptor nextInterceptor, OperationContext opContext )
+    public void modify( NextInterceptor nextInterceptor, ModifyOperationContext opContext )
         throws NamingException
     {
         if ( enabled )
@@ -346,7 +352,7 @@
     //  o The administrator entry cannot be moved or renamed by anyone
     // ------------------------------------------------------------------------
 
-    public void rename( NextInterceptor nextInterceptor, OperationContext opContext )
+    public void rename( NextInterceptor nextInterceptor, RenameOperationContext opContext )
         throws NamingException
     {
         if ( enabled )
@@ -358,7 +364,7 @@
     }
 
 
-    public void move( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public void move( NextInterceptor nextInterceptor, MoveOperationContext opContext ) throws NamingException
     {
         if ( enabled )
         {
@@ -369,7 +375,7 @@
     }
 
 
-    public void moveAndRename( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public void moveAndRename( NextInterceptor nextInterceptor, MoveAndRenameOperationContext opContext ) throws NamingException
     {
         if ( enabled )
         {
@@ -428,7 +434,7 @@
     }
 
 
-    public Attributes lookup( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public Attributes lookup( NextInterceptor nextInterceptor, LookupOperationContext opContext ) throws NamingException
     {
         Attributes attributes = nextInterceptor.lookup( opContext );
         
@@ -437,7 +443,7 @@
             return attributes;
         }
 
-        protectLookUp( ((LookupOperationContext)opContext).getDn() );
+        protectLookUp( opContext.getDn() );
         return attributes;
     }
 
@@ -500,7 +506,7 @@
     }
 
 
-    public NamingEnumeration<SearchResult> search( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public NamingEnumeration<SearchResult> search( NextInterceptor nextInterceptor, SearchOperationContext opContext ) throws NamingException
     {
         NamingEnumeration<SearchResult> e = nextInterceptor.search( opContext );
 
@@ -510,7 +516,7 @@
         }
 
         Invocation invocation = InvocationStack.getInstance().peek();
-        return new SearchResultFilteringEnumeration( e, ((SearchOperationContext)opContext).getSearchControls(), invocation, 
+        return new SearchResultFilteringEnumeration( e, opContext.getSearchControls(), invocation, 
             new SearchResultFilter()
         {
             public boolean accept( Invocation invocation, SearchResult result, SearchControls controls )
@@ -522,7 +528,7 @@
     }
 
 
-    public NamingEnumeration list( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public NamingEnumeration list( NextInterceptor nextInterceptor, ListOperationContext opContext ) throws NamingException
     {
         NamingEnumeration e = nextInterceptor.list( opContext );
         

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeService.java?rev=569124&r1=569123&r2=569124&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeService.java Thu Aug 23 12:25:57 2007
@@ -38,6 +38,7 @@
 import org.apache.directory.server.core.interceptor.BaseInterceptor;
 import org.apache.directory.server.core.interceptor.NextInterceptor;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListOperationContext;
 import org.apache.directory.server.core.interceptor.context.LookupOperationContext;
 import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
 import org.apache.directory.server.core.interceptor.context.OperationContext;
@@ -282,7 +283,7 @@
     // ------------------------------------------------------------------------
     // Interceptor Method Overrides
     // ------------------------------------------------------------------------
-    public Attributes lookup( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public Attributes lookup( NextInterceptor nextInterceptor, LookupOperationContext opContext ) throws NamingException
     {
         Attributes result = nextInterceptor.lookup( opContext );
         
@@ -291,22 +292,20 @@
             return null;
         }
         
-        LookupOperationContext ctx = (LookupOperationContext)opContext;
-        
-        if ( ( ctx.getAttrsId() == null ) || ( ctx.getAttrsId().size() == 0 ) ) 
+        if ( ( opContext.getAttrsId() == null ) || ( opContext.getAttrsId().size() == 0 ) ) 
         {
-            addCollectiveAttributes( ctx.getDn(), result, new String[] { "*" } );
+            addCollectiveAttributes( opContext.getDn(), result, new String[] { "*" } );
         }
         else
         {
-            addCollectiveAttributes( ctx.getDn(), result, ctx.getAttrsIdArray() );
+            addCollectiveAttributes( opContext.getDn(), result, opContext.getAttrsIdArray() );
         }
 
         return result;
     }
 
 
-    public NamingEnumeration list( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public NamingEnumeration list( NextInterceptor nextInterceptor, ListOperationContext opContext ) throws NamingException
     {
         NamingEnumeration e = nextInterceptor.list( opContext );
         Invocation invocation = InvocationStack.getInstance().peek();
@@ -314,28 +313,28 @@
     }
 
 
-    public NamingEnumeration<SearchResult> search( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public NamingEnumeration<SearchResult> search( NextInterceptor nextInterceptor, SearchOperationContext opContext ) throws NamingException
     {
         NamingEnumeration<SearchResult> e = nextInterceptor.search( opContext );
         Invocation invocation = InvocationStack.getInstance().peek();
         return new SearchResultFilteringEnumeration( 
-            e, ((SearchOperationContext)opContext).getSearchControls(), invocation, SEARCH_FILTER, "Search collective Filter" );
+            e, opContext.getSearchControls(), invocation, SEARCH_FILTER, "Search collective Filter" );
     }
     
     // ------------------------------------------------------------------------
     // Partial Schema Checking
     // ------------------------------------------------------------------------
     
-    public void add( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void add( NextInterceptor next, AddOperationContext opContext ) throws NamingException
     {
-        collectiveAttributesSchemaChecker.checkAdd( opContext.getDn(), ((AddOperationContext)opContext).getEntry() );
+        collectiveAttributesSchemaChecker.checkAdd( opContext.getDn(), opContext.getEntry() );
         super.add( next, opContext );
     }
 
 
-    public void modify( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws NamingException
     {
-        collectiveAttributesSchemaChecker.checkModify( opContext.getDn(), ((ModifyOperationContext)opContext).getModItems() );
+        collectiveAttributesSchemaChecker.checkModify( opContext.getDn(), opContext.getModItems() );
         super.modify( next, opContext );
     }
 }

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/EventService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/EventService.java?rev=569124&r1=569123&r2=569124&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/EventService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/EventService.java Thu Aug 23 12:25:57 2007
@@ -45,6 +45,7 @@
 import org.apache.directory.server.core.interceptor.BaseInterceptor;
 import org.apache.directory.server.core.interceptor.NextInterceptor;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
+import org.apache.directory.server.core.interceptor.context.DeleteOperationContext;
 import org.apache.directory.server.core.interceptor.context.LookupOperationContext;
 import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
 import org.apache.directory.server.core.interceptor.context.MoveAndRenameOperationContext;
@@ -234,11 +235,11 @@
     }
 
 
-    public void add( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void add( NextInterceptor next, AddOperationContext opContext ) throws NamingException
     {
         super.add( next, opContext );
         LdapDN name = opContext.getDn();
-        Attributes entry = ((AddOperationContext)opContext).getEntry();
+        Attributes entry = opContext.getEntry();
         
         Set selecting = getSelectingSources( name, entry );
         
@@ -265,7 +266,7 @@
     }
 
 
-    public void delete( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void delete( NextInterceptor next, DeleteOperationContext opContext ) throws NamingException
     {
     	LdapDN name = opContext.getDn();
         Attributes entry = nexus.lookup( new LookupOperationContext( name ) );
@@ -322,13 +323,13 @@
     }
 
 
-    public void modify( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws NamingException
     {
         Invocation invocation = InvocationStack.getInstance().peek();
         PartitionNexusProxy proxy = invocation.getProxy();
         Attributes oriEntry = proxy.lookup( new LookupOperationContext( opContext.getDn() ), PartitionNexusProxy.LOOKUP_BYPASS );
         super.modify( next, opContext );
-        notifyOnModify( opContext.getDn(), ((ModifyOperationContext)opContext).getModItems(), oriEntry );
+        notifyOnModify( opContext.getDn(), opContext.getModItems(), oriEntry );
     }
 
 
@@ -359,33 +360,33 @@
     }
 
 
-    public void rename( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void rename( NextInterceptor next, RenameOperationContext opContext ) throws NamingException
     {
         super.rename( next, opContext );
         LdapDN newName = ( LdapDN ) opContext.getDn().clone();
         newName.remove( newName.size() - 1 );
-        newName.add( ((RenameOperationContext)opContext).getNewRdn() );
+        newName.add( opContext.getNewRdn() );
         newName.normalize( attributeRegistry.getNormalizerMapping() );
         notifyOnNameChange( opContext.getDn(), newName );
     }
 
 
-    public void moveAndRename( NextInterceptor next, OperationContext opContext )
+    public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext opContext )
         throws NamingException
     {
         super.moveAndRename( next, opContext );
-        LdapDN newName = ( LdapDN ) ((MoveAndRenameOperationContext)opContext).getParent().clone();
-        newName.add( ((MoveAndRenameOperationContext)opContext).getNewRdn() );
+        LdapDN newName = ( LdapDN ) opContext.getParent().clone();
+        newName.add( opContext.getNewRdn() );
         notifyOnNameChange( opContext.getDn(), newName );
     }
 
 
-    public void move( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void move( NextInterceptor next, MoveOperationContext opContext ) throws NamingException
     {
         super.move( next, opContext );
         LdapDN oriChildName = opContext.getDn();
         
-        LdapDN newName = ( LdapDN ) ((MoveOperationContext)opContext).getParent().clone();
+        LdapDN newName = ( LdapDN ) opContext.getParent().clone();
         newName.add( oriChildName.get( oriChildName.size() - 1 ) );
         notifyOnNameChange( oriChildName, newName );
     }

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/exception/ExceptionService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/exception/ExceptionService.java?rev=569124&r1=569123&r2=569124&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/exception/ExceptionService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/exception/ExceptionService.java Thu Aug 23 12:25:57 2007
@@ -34,6 +34,8 @@
 import org.apache.directory.server.core.configuration.InterceptorConfiguration;
 import org.apache.directory.server.core.interceptor.BaseInterceptor;
 import org.apache.directory.server.core.interceptor.NextInterceptor;
+import org.apache.directory.server.core.interceptor.context.AddOperationContext;
+import org.apache.directory.server.core.interceptor.context.DeleteOperationContext;
 import org.apache.directory.server.core.interceptor.context.EntryOperationContext;
 import org.apache.directory.server.core.interceptor.context.GetMatchedNameOperationContext;
 import org.apache.directory.server.core.interceptor.context.ListOperationContext;
@@ -43,6 +45,7 @@
 import org.apache.directory.server.core.interceptor.context.MoveOperationContext;
 import org.apache.directory.server.core.interceptor.context.OperationContext;
 import org.apache.directory.server.core.interceptor.context.RenameOperationContext;
+import org.apache.directory.server.core.interceptor.context.SearchOperationContext;
 import org.apache.directory.server.core.invocation.Invocation;
 import org.apache.directory.server.core.invocation.InvocationStack;
 import org.apache.directory.server.core.partition.Partition;
@@ -133,7 +136,7 @@
      * In the pre-invocation state this interceptor method checks to see if the entry to be added already exists.  If it
      * does an exception is raised.
      */
-    public void add( NextInterceptor nextInterceptor, OperationContext opContext )
+    public void add( NextInterceptor nextInterceptor, AddOperationContext opContext )
         throws NamingException
     {
     	LdapDN name = opContext.getDn();
@@ -208,7 +211,7 @@
      * Checks to make sure the entry being deleted exists, and has no children, otherwise throws the appropriate
      * LdapException.
      */
-    public void delete( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public void delete( NextInterceptor nextInterceptor, DeleteOperationContext opContext ) throws NamingException
     {
     	LdapDN name = opContext.getDn();
     	
@@ -257,7 +260,7 @@
     /**
      * Checks to see the base being searched exists, otherwise throws the appropriate LdapException.
      */
-    public NamingEnumeration list( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public NamingEnumeration list( NextInterceptor nextInterceptor, ListOperationContext opContext ) throws NamingException
     {
         if ( opContext.getDn().getNormName().equals( subschemSubentryDn.getNormName() ) )
         {
@@ -276,18 +279,16 @@
     /**
      * Checks to see the base being searched exists, otherwise throws the appropriate LdapException.
      */
-    public Attributes lookup( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public Attributes lookup( NextInterceptor nextInterceptor, LookupOperationContext opContext ) throws NamingException
     {
-        LookupOperationContext ctx = (LookupOperationContext)opContext;
-        
-        if ( ctx.getDn().getNormName().equals( subschemSubentryDn.getNormName() ) )
+        if ( opContext.getDn().getNormName().equals( subschemSubentryDn.getNormName() ) )
         {
             return nexus.getRootDSE( null );
         }
         
         // check if entry to lookup exists
         String msg = "Attempt to lookup non-existant entry: ";
-        assertHasEntry( nextInterceptor, msg, ctx.getDn() );
+        assertHasEntry( nextInterceptor, msg, opContext.getDn() );
 
         return nextInterceptor.lookup( opContext );
     }
@@ -296,26 +297,24 @@
     /**
      * Checks to see the entry being modified exists, otherwise throws the appropriate LdapException.
      */
-    public void modify( NextInterceptor nextInterceptor, OperationContext opContext )
+    public void modify( NextInterceptor nextInterceptor, ModifyOperationContext opContext )
         throws NamingException
     {
-    	ModifyOperationContext ctx = (ModifyOperationContext)opContext;
-
         // check if entry to modify exists
         String msg = "Attempt to modify non-existant entry: ";
 
         // handle operations against the schema subentry in the schema service
         // and never try to look it up in the nexus below
-        if ( ctx.getDn().getNormName().equalsIgnoreCase( subschemSubentryDn.getNormName() ) )
+        if ( opContext.getDn().getNormName().equalsIgnoreCase( subschemSubentryDn.getNormName() ) )
         {
             nextInterceptor.modify( opContext );
             return;
         }
         
-        assertHasEntry( nextInterceptor, msg, ctx.getDn() );
+        assertHasEntry( nextInterceptor, msg, opContext.getDn() );
 
-        Attributes entry = nexus.lookup( new LookupOperationContext( ctx.getDn() ) );
-        ModificationItemImpl[] items = ctx.getModItems();
+        Attributes entry = nexus.lookup( new LookupOperationContext( opContext.getDn() ) );
+        ModificationItemImpl[] items = opContext.getModItems();
         
         for ( int ii = 0; ii < items.length; ii++ )
         {
@@ -346,9 +345,9 @@
         // it would also be more complex.
         synchronized( notAliasCache )
         {
-        	if ( notAliasCache.containsKey( ctx.getDn().getNormName() ) )
+        	if ( notAliasCache.containsKey( opContext.getDn().getNormName() ) )
         	{
-        		notAliasCache.remove( ctx.getDn().getNormName() );
+        		notAliasCache.remove( opContext.getDn().getNormName() );
         	}
         }
 
@@ -358,7 +357,7 @@
     /**
      * Checks to see the entry being renamed exists, otherwise throws the appropriate LdapException.
      */
-    public void rename( NextInterceptor nextInterceptor, OperationContext opContext )
+    public void rename( NextInterceptor nextInterceptor, RenameOperationContext opContext )
         throws NamingException
     {
         LdapDN dn = opContext.getDn();
@@ -378,7 +377,7 @@
         // check to see if target entry exists
         LdapDN newDn = ( LdapDN ) dn.clone();
         newDn.remove( dn.size() - 1 );
-        newDn.add( ((RenameOperationContext)opContext).getNewRdn() );
+        newDn.add( opContext.getNewRdn() );
         newDn.normalize( normalizerMap );
         
         if ( nextInterceptor.hasEntry( new EntryOperationContext( newDn ) ) )
@@ -406,10 +405,10 @@
      * Checks to see the entry being moved exists, and so does its parent, otherwise throws the appropriate
      * LdapException.
      */
-    public void move( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public void move( NextInterceptor nextInterceptor, MoveOperationContext opContext ) throws NamingException
     {
         LdapDN oriChildName = opContext.getDn();
-        LdapDN newParentName = ((MoveOperationContext)opContext).getParent();
+        LdapDN newParentName = opContext.getParent();
         
         if ( oriChildName.getNormName().equalsIgnoreCase( subschemSubentryDn.getNormName() ) )
         {
@@ -462,11 +461,11 @@
      * Checks to see the entry being moved exists, and so does its parent, otherwise throws the appropriate
      * LdapException.
      */
-    public void moveAndRename( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public void moveAndRename( NextInterceptor nextInterceptor, MoveAndRenameOperationContext opContext ) throws NamingException
     {
         LdapDN oriChildName = opContext.getDn();
-        LdapDN parent = ((MoveAndRenameOperationContext)opContext).getParent();
-        String newRn = ((MoveAndRenameOperationContext)opContext).getNewRdn();
+        LdapDN parent = opContext.getParent();
+        String newRn = opContext.getNewRdn();
         
         if ( oriChildName.getNormName().equalsIgnoreCase( subschemSubentryDn.getNormName() ) )
         {
@@ -517,7 +516,7 @@
     /**
      * Checks to see the entry being searched exists, otherwise throws the appropriate LdapException.
      */
-    public NamingEnumeration<SearchResult> search( NextInterceptor nextInterceptor, OperationContext opContext ) throws NamingException
+    public NamingEnumeration<SearchResult> search( NextInterceptor nextInterceptor, SearchOperationContext opContext ) throws NamingException
     {
         LdapDN base = opContext.getDn();
 

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java?rev=569124&r1=569123&r2=569124&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java Thu Aug 23 12:25:57 2007
@@ -32,7 +32,26 @@
 import org.apache.directory.server.core.DirectoryServiceConfiguration;
 import org.apache.directory.server.core.authn.LdapPrincipal;
 import org.apache.directory.server.core.configuration.InterceptorConfiguration;
+import org.apache.directory.server.core.interceptor.context.AddContextPartitionOperationContext;
+import org.apache.directory.server.core.interceptor.context.AddOperationContext;
+import org.apache.directory.server.core.interceptor.context.BindOperationContext;
+import org.apache.directory.server.core.interceptor.context.CompareOperationContext;
+import org.apache.directory.server.core.interceptor.context.DeleteOperationContext;
+import org.apache.directory.server.core.interceptor.context.EntryOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetMatchedNameOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetRootDSEOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetSuffixOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListSuffixOperationContext;
+import org.apache.directory.server.core.interceptor.context.LookupOperationContext;
+import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
+import org.apache.directory.server.core.interceptor.context.MoveAndRenameOperationContext;
+import org.apache.directory.server.core.interceptor.context.MoveOperationContext;
 import org.apache.directory.server.core.interceptor.context.OperationContext;
+import org.apache.directory.server.core.interceptor.context.RemoveContextPartitionOperationContext;
+import org.apache.directory.server.core.interceptor.context.RenameOperationContext;
+import org.apache.directory.server.core.interceptor.context.SearchOperationContext;
+import org.apache.directory.server.core.interceptor.context.UnbindOperationContext;
 import org.apache.directory.server.core.invocation.InvocationStack;
 import org.apache.directory.server.core.jndi.ServerContext;
 import org.apache.directory.shared.ldap.name.LdapDN;
@@ -95,116 +114,116 @@
     // Interceptor's Invoke Method
     // ------------------------------------------------------------------------
 
-    public void add(NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void add( NextInterceptor next, AddOperationContext opContext ) throws NamingException
     {
         next.add( opContext );
     }
 
 
-    public void delete( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void delete( NextInterceptor next, DeleteOperationContext opContext ) throws NamingException
     {
         next.delete( opContext );
     }
 
 
-    public LdapDN getMatchedName ( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public LdapDN getMatchedName ( NextInterceptor next, GetMatchedNameOperationContext opContext ) throws NamingException
     {
         return next.getMatchedName( opContext );
     }
 
 
-    public Attributes getRootDSE( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public Attributes getRootDSE( NextInterceptor next, GetRootDSEOperationContext opContext ) throws NamingException
     {
         return next.getRootDSE( opContext );
     }
 
 
-    public LdapDN getSuffix( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public LdapDN getSuffix( NextInterceptor next, GetSuffixOperationContext opContext ) throws NamingException
     {
         return next.getSuffix( opContext );
     }
 
 
-    public boolean hasEntry( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public boolean hasEntry( NextInterceptor next, EntryOperationContext opContext ) throws NamingException
     {
         return next.hasEntry( opContext );
     }
 
 
-    public NamingEnumeration list( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public NamingEnumeration list( NextInterceptor next, ListOperationContext opContext ) throws NamingException
     {
         return next.list( opContext );
     }
 
 
-    public Iterator listSuffixes ( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public Iterator listSuffixes ( NextInterceptor next, ListSuffixOperationContext opContext ) throws NamingException
     {
         return next.listSuffixes( opContext );
     }
 
 
-    public Attributes lookup( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public Attributes lookup( NextInterceptor next, LookupOperationContext opContext ) throws NamingException
     {
         return next.lookup( opContext );
     }
 
     
-    public void modify( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws NamingException
     {
         next.modify( opContext );
     }
 
 
-    public void rename( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void rename( NextInterceptor next, RenameOperationContext opContext ) throws NamingException
     {
         next.rename( opContext );
     }
 
 
-    public void moveAndRename( NextInterceptor next, OperationContext opContext )
+    public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext opContext )
         throws NamingException
     {
         next.moveAndRename( opContext );
     }
 
 
-    public void move( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void move( NextInterceptor next, MoveOperationContext opContext ) throws NamingException
     {
         next.move( opContext );
     }
 
 
-    public NamingEnumeration<SearchResult> search( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public NamingEnumeration<SearchResult> search( NextInterceptor next, SearchOperationContext opContext ) throws NamingException
     {
         return next.search( opContext );
     }
 
 
-    public void addContextPartition( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void addContextPartition( NextInterceptor next, AddContextPartitionOperationContext opContext ) throws NamingException
     {
         next.addContextPartition( opContext );
     }
 
 
-    public void removeContextPartition( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void removeContextPartition( NextInterceptor next, RemoveContextPartitionOperationContext opContext ) throws NamingException
     {
         next.removeContextPartition( opContext );
     }
 
 
-    public boolean compare( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public boolean compare( NextInterceptor next, CompareOperationContext opContext ) throws NamingException
     {
         return next.compare( opContext );
     }
 
 
-    public void bind( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void bind( NextInterceptor next, BindOperationContext opContext ) throws NamingException
     {
         next.bind( opContext );
     }
 
 
-    public void unbind( NextInterceptor next, OperationContext opContext ) throws NamingException
+    public void unbind( NextInterceptor next, UnbindOperationContext opContext ) throws NamingException
     {
         next.unbind( opContext );
     }

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java?rev=569124&r1=569123&r2=569124&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java Thu Aug 23 12:25:57 2007
@@ -29,7 +29,26 @@
 
 import org.apache.directory.server.core.DirectoryServiceConfiguration;
 import org.apache.directory.server.core.configuration.InterceptorConfiguration;
+import org.apache.directory.server.core.interceptor.context.AddContextPartitionOperationContext;
+import org.apache.directory.server.core.interceptor.context.AddOperationContext;
+import org.apache.directory.server.core.interceptor.context.BindOperationContext;
+import org.apache.directory.server.core.interceptor.context.CompareOperationContext;
+import org.apache.directory.server.core.interceptor.context.DeleteOperationContext;
+import org.apache.directory.server.core.interceptor.context.EntryOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetMatchedNameOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetRootDSEOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetSuffixOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListSuffixOperationContext;
+import org.apache.directory.server.core.interceptor.context.LookupOperationContext;
+import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
+import org.apache.directory.server.core.interceptor.context.MoveAndRenameOperationContext;
+import org.apache.directory.server.core.interceptor.context.MoveOperationContext;
 import org.apache.directory.server.core.interceptor.context.OperationContext;
+import org.apache.directory.server.core.interceptor.context.RemoveContextPartitionOperationContext;
+import org.apache.directory.server.core.interceptor.context.RenameOperationContext;
+import org.apache.directory.server.core.interceptor.context.SearchOperationContext;
+import org.apache.directory.server.core.interceptor.context.UnbindOperationContext;
 import org.apache.directory.server.core.partition.Partition;
 import org.apache.directory.server.core.partition.PartitionNexus;
 import org.apache.directory.shared.ldap.name.LdapDN;
@@ -115,115 +134,115 @@
 
 
     /**
-     * Filters {@link PartitionNexus#getRootDSE( OperationContext )} call.
+     * Filters {@link PartitionNexus#getRootDSE( GetRootDSEOperationContext )} call.
      */
-    Attributes getRootDSE( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    Attributes getRootDSE( NextInterceptor next, GetRootDSEOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link PartitionNexus#getMatchedName( OperationContext )} call.
+     * Filters {@link PartitionNexus#getMatchedName( GetMatchedNameOperationContext )} call.
      */
-    LdapDN getMatchedName( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    LdapDN getMatchedName( NextInterceptor next, GetMatchedNameOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link PartitionNexus#getSuffix( OperationContext )} call.
+     * Filters {@link PartitionNexus#getSuffix( GetSuffixOperationContext )} call.
      */
-    LdapDN getSuffix ( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    LdapDN getSuffix ( NextInterceptor next, GetSuffixOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link PartitionNexus#listSuffixes( OperationContext )} call.
+     * Filters {@link PartitionNexus#listSuffixes( ListSuffixOperationContext )} call.
      */
-    Iterator listSuffixes( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    Iterator listSuffixes( NextInterceptor next, ListSuffixOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link PartitionNexus#addContextPartition( OperationContext )} call.
+     * Filters {@link PartitionNexus#addContextPartition( AddContextPartitionOperationContext )} call.
      */
-    void addContextPartition( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    void addContextPartition( NextInterceptor next, AddContextPartitionOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link PartitionNexus#removeContextPartition( OperationContext )} call.
+     * Filters {@link PartitionNexus#removeContextPartition( RemoveContextPartitionOperationContext )} call.
      */
-    void removeContextPartition( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    void removeContextPartition( NextInterceptor next, RemoveContextPartitionOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link PartitionNexus#compare( OperationContext )} call.
+     * Filters {@link PartitionNexus#compare( CompareOperationContext )} call.
      */
-    boolean compare( NextInterceptor next, OperationContext opContext) throws NamingException;
+    boolean compare( NextInterceptor next, CompareOperationContext opContext) throws NamingException;
 
 
     /**
-     * Filters {@link Partition#delete( OperationContext )} call.
+     * Filters {@link Partition#delete( DeleteOperationContext )} call.
      */
-    void delete( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    void delete( NextInterceptor next, DeleteOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link Partition#add( OperationContext )} call.
+     * Filters {@link Partition#add( AddOperationContext )} call.
      */
-    void add( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    void add( NextInterceptor next, AddOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link Partition#modify( OperationContext )} call.
+     * Filters {@link Partition#modify( ModifyOperationContext )} call.
      */
-    void modify( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    void modify( NextInterceptor next, ModifyOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link Partition#list( OperationContext )} call.
+     * Filters {@link Partition#list( ListOperationContext )} call.
      */
-    NamingEnumeration list( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    NamingEnumeration list( NextInterceptor next, ListOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link Partition#search( OperationContext )} call.
+     * Filters {@link Partition#search( SearchOperationContext )} call.
      */
-    NamingEnumeration<SearchResult> search( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    NamingEnumeration<SearchResult> search( NextInterceptor next, SearchOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link Partition#lookup( OperationContext )} call.
+     * Filters {@link Partition#lookup( LookupOperationContext )} call.
      */
-    Attributes lookup( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    Attributes lookup( NextInterceptor next, LookupOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link Partition#hasEntry( OperationContext )} call.
+     * Filters {@link Partition#hasEntry( EntryOperationContext )} call.
      */
-    boolean hasEntry( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    boolean hasEntry( NextInterceptor next, EntryOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link Partition#rename( OperationContext )} call.
+     * Filters {@link Partition#rename( RenameOperationContext )} call.
      */
-    void rename( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    void rename( NextInterceptor next, RenameOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link Partition#move( OperationContext )} call.
+     * Filters {@link Partition#move( MoveOperationContext )} call.
      */
-    void move( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    void move( NextInterceptor next, MoveOperationContext opContext ) throws NamingException;
 
 
     /**
-     * Filters {@link Partition#moveAndRename( OperationContext) } call.
+     * Filters {@link Partition#moveAndRename( MoveAndRenameOperationContext) } call.
      */
-    void moveAndRename( NextInterceptor next, OperationContext opContext )
+    void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext opContext )
         throws NamingException;
 
     /**
-     * Filters {@link Partition#bind( OperationContext )} call.
+     * Filters {@link Partition#bind( BindOperationContext )} call.
      */
-    void bind( NextInterceptor next, OperationContext opContext )
+    void bind( NextInterceptor next, BindOperationContext opContext )
         throws NamingException;
 
     /**
-     * Filters {@link Partition#unbind( OperationContext )} call.
+     * Filters {@link Partition#unbind( UnbindOperationContext )} call.
      */
-    void unbind( NextInterceptor next, OperationContext opContext ) throws NamingException;
+    void unbind( NextInterceptor next, UnbindOperationContext opContext ) throws NamingException;
 }

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java?rev=569124&r1=569123&r2=569124&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java Thu Aug 23 12:25:57 2007
@@ -35,7 +35,26 @@
 
 import org.apache.directory.server.core.DirectoryServiceConfiguration;
 import org.apache.directory.server.core.configuration.InterceptorConfiguration;
+import org.apache.directory.server.core.interceptor.context.AddContextPartitionOperationContext;
+import org.apache.directory.server.core.interceptor.context.AddOperationContext;
+import org.apache.directory.server.core.interceptor.context.BindOperationContext;
+import org.apache.directory.server.core.interceptor.context.CompareOperationContext;
+import org.apache.directory.server.core.interceptor.context.DeleteOperationContext;
+import org.apache.directory.server.core.interceptor.context.EntryOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetMatchedNameOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetRootDSEOperationContext;
+import org.apache.directory.server.core.interceptor.context.GetSuffixOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListOperationContext;
+import org.apache.directory.server.core.interceptor.context.ListSuffixOperationContext;
+import org.apache.directory.server.core.interceptor.context.LookupOperationContext;
+import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
+import org.apache.directory.server.core.interceptor.context.MoveAndRenameOperationContext;
+import org.apache.directory.server.core.interceptor.context.MoveOperationContext;
 import org.apache.directory.server.core.interceptor.context.OperationContext;
+import org.apache.directory.server.core.interceptor.context.RemoveContextPartitionOperationContext;
+import org.apache.directory.server.core.interceptor.context.RenameOperationContext;
+import org.apache.directory.server.core.interceptor.context.SearchOperationContext;
+import org.apache.directory.server.core.interceptor.context.UnbindOperationContext;
 import org.apache.directory.server.core.invocation.Invocation;
 import org.apache.directory.server.core.invocation.InvocationStack;
 import org.apache.directory.server.core.partition.PartitionNexus;
@@ -76,118 +95,118 @@
         }
 
 
-        public boolean compare( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public boolean compare( NextInterceptor next, CompareOperationContext opContext ) throws NamingException
         {
             return nexus.compare( opContext );
         }
 
 
-        public Attributes getRootDSE( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public Attributes getRootDSE( NextInterceptor next, GetRootDSEOperationContext opContext ) throws NamingException
         {
             return nexus.getRootDSE( opContext );
         }
 
 
-        public LdapDN getMatchedName( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public LdapDN getMatchedName( NextInterceptor next, GetMatchedNameOperationContext opContext ) throws NamingException
         {
             return ( LdapDN ) nexus.getMatchedName( opContext ).clone();
         }
 
 
-        public LdapDN getSuffix( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public LdapDN getSuffix( NextInterceptor next, GetSuffixOperationContext opContext ) throws NamingException
         {
             return ( LdapDN ) nexus.getSuffix( opContext ).clone();
         }
 
 
-        public Iterator listSuffixes( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public Iterator listSuffixes( NextInterceptor next, ListSuffixOperationContext opContext ) throws NamingException
         {
             return nexus.listSuffixes( opContext );
         }
 
 
-        public void delete( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public void delete( NextInterceptor next, DeleteOperationContext opContext ) throws NamingException
         {
             nexus.delete( opContext );
         }
 
 
-        public void add( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public void add( NextInterceptor next, AddOperationContext opContext ) throws NamingException
         {
             nexus.add( opContext );
         }
 
 
-        public void modify( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws NamingException
         {
             nexus.modify( opContext );
         }
 
 
-        public NamingEnumeration list( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public NamingEnumeration list( NextInterceptor next, ListOperationContext opContext ) throws NamingException
         {
             return nexus.list( opContext );
         }
 
 
-        public NamingEnumeration<SearchResult> search( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public NamingEnumeration<SearchResult> search( NextInterceptor next, SearchOperationContext opContext ) throws NamingException
         {
             return nexus.search( opContext );
         }
 
 
-        public Attributes lookup( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public Attributes lookup( NextInterceptor next, LookupOperationContext opContext ) throws NamingException
         {
             return ( Attributes ) nexus.lookup( opContext ).clone();
         }
 
 
-        public boolean hasEntry( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public boolean hasEntry( NextInterceptor next, EntryOperationContext opContext ) throws NamingException
         {
             return nexus.hasEntry( opContext );
         }
 
 
-        public void rename( NextInterceptor next, OperationContext opContext )
+        public void rename( NextInterceptor next, RenameOperationContext opContext )
             throws NamingException
         {
             nexus.rename( opContext );
         }
 
 
-        public void move( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public void move( NextInterceptor next, MoveOperationContext opContext ) throws NamingException
         {
             nexus.move( opContext );
         }
 
 
-        public void moveAndRename( NextInterceptor next, OperationContext opContext )
+        public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext opContext )
             throws NamingException
         {
             nexus.moveAndRename( opContext );
         }
 
 
-        public void addContextPartition( NextInterceptor next, OperationContext opContext )
+        public void addContextPartition( NextInterceptor next, AddContextPartitionOperationContext opContext )
             throws NamingException
         {
             nexus.addContextPartition( opContext );
         }
 
 
-        public void removeContextPartition( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public void removeContextPartition( NextInterceptor next, RemoveContextPartitionOperationContext opContext ) throws NamingException
         {
             nexus.removeContextPartition( opContext );
         }
 
 
-        public void bind( NextInterceptor next, OperationContext opContext )  throws NamingException
+        public void bind( NextInterceptor next, BindOperationContext opContext )  throws NamingException
         {
             nexus.bind( opContext );
         }
 
 
-        public void unbind( NextInterceptor next, OperationContext opContext ) throws NamingException
+        public void unbind( NextInterceptor next, UnbindOperationContext opContext ) throws NamingException
         {
             nexus.unbind( opContext );
         }
@@ -548,7 +567,7 @@
     }
 
 
-    public Attributes getRootDSE( OperationContext opContext ) throws NamingException
+    public Attributes getRootDSE( GetRootDSEOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -570,7 +589,7 @@
     }
 
 
-    public LdapDN getMatchedName( OperationContext opContext ) throws NamingException
+    public LdapDN getMatchedName( GetMatchedNameOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -592,7 +611,7 @@
     }
 
 
-    public LdapDN getSuffix( OperationContext opContext ) throws NamingException
+    public LdapDN getSuffix( GetSuffixOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -614,7 +633,7 @@
     }
 
 
-    public boolean compare( OperationContext opContext ) throws NamingException
+    public boolean compare( CompareOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -636,7 +655,7 @@
     }
 
 
-    public Iterator listSuffixes( OperationContext opContext ) throws NamingException
+    public Iterator listSuffixes( ListSuffixOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -658,7 +677,7 @@
     }
 
 
-    public void addContextPartition( OperationContext opContext ) throws NamingException
+    public void addContextPartition( AddContextPartitionOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -680,7 +699,7 @@
     }
 
 
-    public void removeContextPartition( OperationContext opContext ) throws NamingException
+    public void removeContextPartition( RemoveContextPartitionOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -702,7 +721,7 @@
     }
 
 
-    public void delete( OperationContext opContext ) throws NamingException
+    public void delete( DeleteOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -723,7 +742,7 @@
     }
 
 
-    public void add( OperationContext opContext ) throws NamingException
+    public void add( AddOperationContext opContext ) throws NamingException
     {
         Entry node = getStartingEntry();
         Interceptor head = node.interceptor;
@@ -744,7 +763,7 @@
     }
 
 
-    public void bind( OperationContext opContext ) throws NamingException
+    public void bind( BindOperationContext opContext ) throws NamingException
     {
         Entry node = getStartingEntry();
         Interceptor head = node.interceptor;
@@ -765,7 +784,7 @@
     }
 
 
-    public void unbind( OperationContext opContext ) throws NamingException
+    public void unbind( UnbindOperationContext opContext ) throws NamingException
     {
         Entry node = getStartingEntry();
         Interceptor head = node.interceptor;
@@ -786,7 +805,7 @@
     }
 
 
-    public void modify( OperationContext opContext ) throws NamingException
+    public void modify( ModifyOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -828,7 +847,7 @@
     }*/
 
 
-    public NamingEnumeration list( OperationContext opContext ) throws NamingException
+    public NamingEnumeration list( ListOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -850,7 +869,7 @@
     }
 
 
-    public NamingEnumeration<SearchResult> search( OperationContext opContext )
+    public NamingEnumeration<SearchResult> search( SearchOperationContext opContext )
         throws NamingException
     {
         Entry entry = getStartingEntry();
@@ -873,7 +892,7 @@
     }
 
 
-    public Attributes lookup( OperationContext opContext ) throws NamingException
+    public Attributes lookup( LookupOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -895,7 +914,7 @@
     }
 
 
-    public boolean hasEntry( OperationContext opContext ) throws NamingException
+    public boolean hasEntry( EntryOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -917,7 +936,7 @@
     }
 
 
-    public void rename( OperationContext opContext ) throws NamingException
+    public void rename( RenameOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -938,7 +957,7 @@
     }
 
 
-    public void move( OperationContext opContext ) throws NamingException
+    public void move( MoveOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -959,7 +978,7 @@
     }
 
 
-    public void moveAndRename( OperationContext opContext ) throws NamingException
+    public void moveAndRename( MoveAndRenameOperationContext opContext ) throws NamingException
     {
         Entry entry = getStartingEntry();
         Interceptor head = entry.interceptor;
@@ -1053,7 +1072,7 @@
                 }
 
 
-                public boolean compare( OperationContext opContext ) throws NamingException
+                public boolean compare( CompareOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1074,7 +1093,7 @@
                 }
 
 
-                public Attributes getRootDSE( OperationContext opContext ) throws NamingException
+                public Attributes getRootDSE( GetRootDSEOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1095,7 +1114,7 @@
                 }
 
 
-                public LdapDN getMatchedName( OperationContext opContext ) throws NamingException
+                public LdapDN getMatchedName( GetMatchedNameOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1116,7 +1135,7 @@
                 }
 
 
-                public LdapDN getSuffix( OperationContext opContext ) throws NamingException
+                public LdapDN getSuffix( GetSuffixOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1137,7 +1156,7 @@
                 }
 
 
-                public Iterator listSuffixes( OperationContext opContext ) throws NamingException
+                public Iterator listSuffixes( ListSuffixOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1158,7 +1177,7 @@
                 }
 
 
-                public void delete( OperationContext opContext ) throws NamingException
+                public void delete( DeleteOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1178,7 +1197,7 @@
                 }
 
 
-                public void add( OperationContext opContext ) throws NamingException
+                public void add( AddOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1198,7 +1217,7 @@
                 }
 
 
-                public void modify( OperationContext opContext ) throws NamingException
+                public void modify( ModifyOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1218,7 +1237,7 @@
                 }
 
                 
-                public NamingEnumeration list( OperationContext opContext ) throws NamingException
+                public NamingEnumeration list( ListOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1239,7 +1258,7 @@
                 }
 
 
-                public NamingEnumeration<SearchResult> search( OperationContext opContext )
+                public NamingEnumeration<SearchResult> search( SearchOperationContext opContext )
                     throws NamingException
                 {
                     Entry next = getNextEntry();
@@ -1261,7 +1280,7 @@
                 }
 
 
-                public Attributes lookup( OperationContext opContext ) throws NamingException
+                public Attributes lookup( LookupOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1282,7 +1301,7 @@
                 }
 
 
-                public boolean hasEntry( OperationContext opContext ) throws NamingException
+                public boolean hasEntry( EntryOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1303,7 +1322,7 @@
                 }
 
 
-                public void rename( OperationContext opContext ) throws NamingException
+                public void rename( RenameOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1323,7 +1342,7 @@
                 }
 
 
-                public void move( OperationContext opContext ) throws NamingException
+                public void move( MoveOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1343,7 +1362,7 @@
                 }
 
 
-                public void moveAndRename( OperationContext opContext )
+                public void moveAndRename( MoveAndRenameOperationContext opContext )
                     throws NamingException
                 {
                     Entry next = getNextEntry();
@@ -1364,7 +1383,7 @@
                 }
 
 
-                public void bind( OperationContext opContext ) throws NamingException
+                public void bind( BindOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1384,7 +1403,7 @@
                 }
 
 
-                public void unbind( OperationContext opContext ) throws NamingException
+                public void unbind( UnbindOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1404,7 +1423,7 @@
                 }
 
 
-                public void addContextPartition( OperationContext opContext ) throws NamingException
+                public void addContextPartition( AddContextPartitionOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;
@@ -1425,7 +1444,7 @@
                 }
 
 
-                public void removeContextPartition( OperationContext opContext ) throws NamingException
+                public void removeContextPartition( RemoveContextPartitionOperationContext opContext ) throws NamingException
                 {
                     Entry next = getNextEntry();
                     Interceptor interceptor = next.interceptor;