Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 89382 invoked from network); 16 Jul 2010 15:28:16 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 16 Jul 2010 15:28:16 -0000 Received: (qmail 36001 invoked by uid 500); 16 Jul 2010 15:28:16 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 35943 invoked by uid 500); 16 Jul 2010 15:28:16 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 35936 invoked by uid 99); 16 Jul 2010 15:28:15 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Jul 2010 15:28:15 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Jul 2010 15:28:13 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 0795123889E0; Fri, 16 Jul 2010 15:27:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r964837 [1/2] - in /directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree: SubentryCache.java SubentryInterceptor.java Date: Fri, 16 Jul 2010 15:27:19 -0000 To: commits@directory.apache.org From: elecharny@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100716152720.0795123889E0@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: elecharny Date: Fri Jul 16 15:27:19 2010 New Revision: 964837 URL: http://svn.apache.org/viewvc?rev=964837&view=rev Log: First step of refactoring : o The subentry cache now use the DN (and not the String DN) as a key, as it spares some useless DN normalizations o Some helper methods has been added and used in the add() operation, they will also be used in the other operations o Many other small cleanup and improvements done o Added some javadoc and comments Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java?rev=964837&r1=964836&r2=964837&view=diff ============================================================================== --- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java (original) +++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java Fri Jul 16 15:27:19 2010 @@ -36,7 +36,7 @@ import org.apache.directory.shared.ldap. * * @author Apache Directory Project */ -public class SubentryCache +public class SubentryCache implements Iterable { /** The default cache size limit */ private static final int DEFAULT_CACHE_MAX_SIZE = 1000; @@ -48,14 +48,14 @@ public class SubentryCache private AtomicInteger cacheSize; /** The Subentry cache */ - private final Map cache; + private final Map cache; /** * Creates a new instance of SubentryCache with a default maximum size. */ public SubentryCache() { - cache = new HashMap(); + cache = new HashMap(); cacheSize = new AtomicInteger( 0 ); } @@ -65,7 +65,7 @@ public class SubentryCache */ public SubentryCache( int maxSize ) { - cache = new HashMap(); + cache = new HashMap(); cacheSize = new AtomicInteger( 0 ); cacheMaxSize = maxSize; } @@ -79,7 +79,7 @@ public class SubentryCache */ final Subentry getSubentry( DN dn ) { - return cache.get( dn.getNormName() ); + return cache.get( dn ); } @@ -92,7 +92,8 @@ public class SubentryCache */ final Subentry removeSubentry( DN dn ) { - Subentry oldSubentry = cache.remove( dn.getNormName() ); + int k = dn.hashCode(); + Subentry oldSubentry = cache.remove( dn ); if ( oldSubentry != null ) { @@ -113,12 +114,13 @@ public class SubentryCache */ /* No qualifier */ Subentry addSubentry( DN dn, Subentry subentry ) { + int k = dn.hashCode(); if ( cacheSize.get() > cacheMaxSize ) { // TODO : Throw an exception here } - Subentry oldSubentry = cache.put( dn.getNormName(), subentry ); + Subentry oldSubentry = cache.put( dn, subentry ); if ( oldSubentry == null ) { @@ -136,14 +138,14 @@ public class SubentryCache */ /* No qualifier */ boolean hasSubentry( DN dn ) { - return cache.containsKey( dn.getNormName() ); + return cache.containsKey( dn ); } /** * @return An Iterator over the Subentry's DNs */ - final Iterator nameIterator() + public Iterator iterator() { return cache.keySet().iterator(); }