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/05/10 22:19:41 UTC
svn commit: r655151 [1/3] - in /directory/sandbox/akarasulu/bigbang:
apacheds/btree-base/src/main/java/org/apache/directory/server/xdbm/
apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/
apacheds/jdbm-store/src/main/java/org/apa...
Author: akarasulu
Date: Sat May 10 13:19:40 2008
New Revision: 655151
URL: http://svn.apache.org/viewvc?rev=655151&view=rev
Log:
commiting fixes after merge more to go
Modified:
directory/sandbox/akarasulu/bigbang/apacheds/btree-base/src/main/java/org/apache/directory/server/xdbm/Store.java
directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStringValue.java
directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndex.java
directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTable.java
directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java
directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTable.java
directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTableTest.java
directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/AndCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/AndEvaluator.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/CursorBuilder.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EvaluatorBuilder.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqEvaluator.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/NotCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/NotEvaluator.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/OrCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/OrEvaluator.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceEvaluator.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringEvaluator.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeCursor.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/AndCursorTest.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/GreaterEqTest.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/LessEqTest.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/NotCursorTest.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeTest.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/OrCursorTest.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/PresenceTest.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/SubstringTest.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeTest.java
directory/sandbox/akarasulu/bigbang/apacheds/xdbm-tools/src/main/java/org/apache/directory/server/xdbm/tools/StoreUtils.java
directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/LessEqNode.java
directory/sandbox/akarasulu/bigbang/shared/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AttributeType.java
Modified: directory/sandbox/akarasulu/bigbang/apacheds/btree-base/src/main/java/org/apache/directory/server/xdbm/Store.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/btree-base/src/main/java/org/apache/directory/server/xdbm/Store.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/btree-base/src/main/java/org/apache/directory/server/xdbm/Store.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/btree-base/src/main/java/org/apache/directory/server/xdbm/Store.java Sat May 10 13:19:40 2008
@@ -30,8 +30,6 @@
import org.apache.directory.shared.ldap.entry.ModificationOperation;
import org.apache.directory.shared.ldap.entry.Modification;
-import javax.naming.NamingException;
-import javax.naming.directory.Attributes;
import java.io.File;
import java.util.Set;
import java.util.Iterator;
@@ -155,13 +153,11 @@
/**
* Initialize the JDBM storage system.
*
- * @param oidRegistry an OID registry to resolve numeric identifiers from names
- * @param attributeTypeRegistry an attributeType specification registry to lookup type specs
- * @throws javax.naming.NamingException on failure to lookup elements in registries
+ * @param registries the schema registries
+ * @throws Exception on failure to lookup elements in registries
* @throws Exception on failure to create database files
*/
- void init( OidRegistry oidRegistry, AttributeTypeRegistry attributeTypeRegistry )
- throws Exception;
+ void init( Registries registries ) throws Exception;
/**
@@ -190,55 +186,55 @@
void sync() throws Exception;
- void addIndex( Index index ) throws NamingException;
+ void addIndex( Index index ) throws Exception;
Index<String,E> getPresenceIndex();
- void setPresenceIndex( Index<String,E> index ) throws NamingException;
+ void setPresenceIndex( Index<String,E> index ) throws Exception;
Index<Long,E> getOneLevelIndex();
- void setOneLevelIndex( Index<Long,E> index ) throws NamingException;
+ void setOneLevelIndex( Index<Long,E> index ) throws Exception;
Index<Long,E> getSubLevelIndex();
- void setSubLevelIndex( Index<Long,E> index ) throws NamingException;
+ void setSubLevelIndex( Index<Long,E> index ) throws Exception;
Index<String,E> getAliasIndex();
- void setAliasIndex( Index<String,E> index ) throws NamingException;
+ void setAliasIndex( Index<String,E> index ) throws Exception;
Index<Long,E> getOneAliasIndex();
- void setOneAliasIndex( Index<Long,E> index ) throws NamingException;
+ void setOneAliasIndex( Index<Long,E> index ) throws Exception;
Index<Long,E> getSubAliasIndex();
- void setSubAliasIndex( Index<Long,E> index ) throws NamingException;
+ void setSubAliasIndex( Index<Long,E> index ) throws Exception;
Index<String,E> getUpdnIndex();
- void setUpdnIndex( Index<String,E> index ) throws NamingException;
+ void setUpdnIndex( Index<String,E> index ) throws Exception;
Index<String,E> getNdnIndex();
- void setNdnIndex( Index<String,E> index ) throws NamingException;
+ void setNdnIndex( Index<String,E> index ) throws Exception;
Iterator<String> userIndices();
@@ -247,10 +243,10 @@
Iterator<String> systemIndices();
- boolean hasUserIndexOn( String id ) throws NamingException;
+ boolean hasUserIndexOn( String id ) throws Exception;
- boolean hasSystemIndexOn( String id ) throws NamingException;
+ boolean hasSystemIndexOn( String id ) throws Exception;
Index getUserIndex( String id ) throws IndexNotFoundException;
@@ -290,10 +286,10 @@
int count() throws Exception;
- void add( LdapDN normName, Attributes entry ) throws Exception;
+ void add( LdapDN normName, ServerEntry entry ) throws Exception;
- Attributes lookup( Long id ) throws Exception;
+ ServerEntry lookup( Long id ) throws Exception;
void delete( Long id ) throws Exception;
@@ -318,7 +314,7 @@
LdapDN getUpSuffix();
- Attributes getSuffixEntry() throws Exception;
+ ServerEntry getSuffixEntry() throws Exception;
void setProperty( String propertyName, String propertyValue ) throws Exception;
Modified: directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStringValue.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStringValue.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStringValue.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStringValue.java Sat May 10 13:19:40 2008
@@ -284,7 +284,7 @@
/**
- * @see Value#compareTo(Value)
+ * @see Value#compareTo(Object)
* @throws IllegalStateException on failures to extract the comparator, or the
* normalizers needed to perform the required comparisons based on the schema
*/
Modified: directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndex.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndex.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndex.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndex.java Sat May 10 13:19:40 2008
@@ -30,7 +30,6 @@
import org.apache.directory.server.xdbm.Index;
import org.apache.directory.server.xdbm.IndexEntry;
import org.apache.directory.server.xdbm.Tuple;
-import org.apache.directory.shared.ldap.entry.Value;
import org.apache.directory.shared.ldap.schema.AttributeType;
import org.apache.directory.shared.ldap.util.SynchronizedLRUMap;
@@ -654,15 +653,8 @@
if ( null == normalized )
{
- if ( attrVal instanceof Value<?> )
- {
- normalized = attribute.getEquality().getNormalizer().normalize( ( ( Value<?> ) attrVal ).get() );
- }
- else
- {
- //noinspection unchecked
- normalized = ( K ) attribute.getEquality().getNormalizer().normalize( attrVal );
- }
+ //noinspection unchecked
+ normalized = ( K ) attribute.getEquality().getNormalizer().normalize( attrVal );
// Double map it so if we use an already normalized
// value we can get back the same normalized value.
Modified: directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTable.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTable.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTable.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTable.java Sat May 10 13:19:40 2008
@@ -24,15 +24,11 @@
import jdbm.helper.LongSerializer;
import jdbm.helper.StringComparator;
-import jdbm.helper.Serializer;
import org.apache.directory.server.xdbm.MasterTable;
-import org.apache.directory.server.core.entry.ServerEntry;
import org.apache.directory.server.core.entry.ServerEntrySerializer;
import org.apache.directory.server.schema.SerializableComparator;
import org.apache.directory.server.schema.registries.Registries;
-import java.io.IOException;
-
/**
* The master table used to store the Attributes of entries.
@@ -62,37 +58,34 @@
throw new IllegalArgumentException( "Argument 'obj2' is null" );
}
- long thisVal = ( Long ) o1;
- long anotherVal = ( Long ) o2;
-
- if ( thisVal == anotherVal )
+ if ( o1 == ( long ) o2 )
{
return 0;
}
- if ( thisVal == anotherVal )
+ if ( o1 == ( long ) o2 )
{
return 0;
}
- if ( thisVal >= 0 )
+ if ( o1 >= 0 )
{
- if ( anotherVal >= 0 )
+ if ( o2 >= 0 )
{
- return ( thisVal > anotherVal ) ? 1 : -1;
+ return ( o1 > ( long ) o2 ) ? 1 : -1;
}
else
{
return -1;
}
}
- else if ( anotherVal >= 0 )
+ else if ( o2 >= 0 )
{
return 1;
}
else
{
- return ( thisVal < anotherVal ) ? -1 : 1;
+ return ( o1 < ( long ) o2 ) ? -1 : 1;
}
}
};
@@ -118,7 +111,7 @@
* Creates the master table using JDBM B+Trees for the backing store.
*
* @param recMan the JDBM record manager
- * @param serializer the serializer to use for persisting objects
+ * @param registries the schema registries
* @throws Exception if there is an error opening the Db file.
*/
public JdbmMasterTable( RecordManager recMan, Registries registries ) throws Exception
@@ -139,9 +132,9 @@
*
* @param id the Long id of the entry to retrieve.
* @return the ServerEntry with operational attributes and all.
- * @throws NamingException if there is a read error on the underlying Db.
+ * @throws Exception if there is a read error on the underlying Db.
*/
- public E get( Object id ) throws Exception
+ public E get( Long id ) throws Exception
{
return super.get( id );
}
Modified: directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java Sat May 10 13:19:40 2008
@@ -26,7 +26,6 @@
import jdbm.recman.CacheRecordManager;
import org.apache.directory.server.core.entry.DefaultServerAttribute;
-import org.apache.directory.server.core.entry.DefaultServerEntry;
import org.apache.directory.server.core.entry.ServerAttribute;
import org.apache.directory.server.core.entry.ServerEntry;
import org.apache.directory.server.core.entry.ServerEntryUtils;
@@ -46,18 +45,15 @@
import org.apache.directory.shared.ldap.exception.LdapNameNotFoundException;
import org.apache.directory.shared.ldap.exception.LdapSchemaViolationException;
import org.apache.directory.shared.ldap.exception.LdapOperationNotSupportedException;
-import org.apache.directory.shared.ldap.message.AttributeImpl;
import org.apache.directory.shared.ldap.message.ResultCodeEnum;
import org.apache.directory.shared.ldap.name.LdapDN;
import org.apache.directory.shared.ldap.name.Rdn;
import org.apache.directory.shared.ldap.schema.AttributeType;
import org.apache.directory.shared.ldap.util.NamespaceTools;
-import org.apache.directory.shared.ldap.NotImplementedException;
import org.apache.directory.shared.ldap.MultiException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import java.io.File;
import java.util.ArrayList;
@@ -85,7 +81,7 @@
/** the working directory to use for files */
private File workingDirectory;
/** the master table storing entries by primary key */
- private JdbmMasterTable<Attributes> master;
+ private JdbmMasterTable<E> master;
/** a map of attributeType numeric ids to user userIndices */
private Map<String, JdbmIndex> userIndices = new HashMap<String, JdbmIndex>();
/** a map of attributeType numeric ids to system userIndices */
@@ -247,8 +243,7 @@
* Initialize the JDBM storage system.
*
* @param registries the schema registries
- * @throws Exception on failure to lookup elements in registries
- * @throws Exception on failure to create database files
+ * @throws Exception on failure to lookup elements in registries or create database files
*/
public synchronized void init( Registries registries ) throws Exception
{
@@ -1081,7 +1076,7 @@
}
}
- master.put( id, entry );
+ master.put( id, ( E ) entry );
if ( isSyncOnWrite )
{
@@ -1092,7 +1087,7 @@
public ServerEntry lookup( Long id ) throws Exception
{
- return master.get( id );
+ return ( ServerEntry ) master.get( id );
}
@@ -1396,7 +1391,7 @@
public void modify( LdapDN dn, ModificationOperation modOp, ServerEntry mods ) throws Exception
{
Long id = getEntryId( dn.toString() );
- ServerEntry entry = master.get( id );
+ ServerEntry entry = ( ServerEntry ) master.get( id );
for ( AttributeType attributeType : mods.getAttributeTypes() )
{
@@ -1422,7 +1417,7 @@
}
}
- master.put( id, entry );
+ master.put( id, ( E ) entry );
if ( isSyncOnWrite )
{
@@ -1434,7 +1429,7 @@
public void modify( LdapDN dn, List<Modification> mods ) throws Exception
{
Long id = getEntryId( dn.toString() );
- ServerEntry entry = master.get( id );
+ ServerEntry entry = ( ServerEntry ) master.get( id );
for ( Modification mod : mods )
{
@@ -1459,7 +1454,7 @@
}
}
- master.put( id, entry );
+ master.put( id, ( E ) entry );
if ( isSyncOnWrite )
{
@@ -1589,7 +1584,7 @@
// Update the current entry
entry.setDn( newUpdn );
- master.put( entry, id );
+ master.put( id, ( E ) entry );
if ( isSyncOnWrite )
{
@@ -1673,7 +1668,7 @@
// Modify the child
ServerEntry entry = lookup( childId );
entry.setDn( childUpdn );
- master.put( childId, entry );
+ master.put( childId, ( E ) entry );
// Recursively change the names of the children below
modifyDn( childId, childUpdn, isMove );
Modified: directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTable.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTable.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTable.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTable.java Sat May 10 13:19:40 2008
@@ -370,7 +370,7 @@
// ------------------------------------------------------------------------
- public V get( K key ) throws IOException
+ public V get( K key ) throws Exception
{
if ( key == null )
{
Modified: directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTableTest.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTableTest.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTableTest.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTableTest.java Sat May 10 13:19:40 2008
@@ -26,11 +26,15 @@
import org.junit.After;
import org.junit.Test;
import static org.junit.Assert.*;
+import org.apache.directory.server.schema.bootstrap.*;
+import org.apache.directory.server.schema.registries.*;
+import org.apache.directory.server.schema.SerializableComparator;
import java.io.File;
+import java.util.Set;
+import java.util.HashSet;
import jdbm.RecordManager;
-import jdbm.helper.IntegerSerializer;
import jdbm.recman.BaseRecordManager;
@@ -48,6 +52,27 @@
transient JdbmMasterTable<Integer> table;
transient File dbFile;
transient RecordManager recman;
+ transient Registries registries = null;
+ transient AttributeTypeRegistry attributeRegistry;
+
+
+ public JdbmMasterTableTest() throws Exception
+ {
+ // setup the standard registries
+ BootstrapSchemaLoader loader = new BootstrapSchemaLoader();
+ OidRegistry oidRegistry = new DefaultOidRegistry();
+ registries = new DefaultRegistries( "bootstrap", loader, oidRegistry );
+ SerializableComparator.setRegistry( registries.getComparatorRegistry() );
+
+ // load essential bootstrap schemas
+ Set<Schema> bootstrapSchemas = new HashSet<Schema>();
+ bootstrapSchemas.add( new ApachemetaSchema() );
+ bootstrapSchemas.add( new ApacheSchema() );
+ bootstrapSchemas.add( new CoreSchema() );
+ bootstrapSchemas.add( new SystemSchema() );
+ loader.loadWithDependencies( bootstrapSchemas, registries );
+ attributeRegistry = registries.getAttributeTypeRegistry();
+ }
@Before
@@ -63,10 +88,10 @@
dbFile = File.createTempFile( getClass().getSimpleName(), "db", tmpDir );
recman = new BaseRecordManager( dbFile.getAbsolutePath() );
- table = new JdbmMasterTable<Integer>( recman, new IntegerSerializer() );
+ table = new JdbmMasterTable<Integer>( recman, registries );
LOG.debug( "Created new table and populated it with data" );
- JdbmMasterTable t2 = new JdbmMasterTable<Integer>( recman, new IntegerSerializer() );
+ JdbmMasterTable t2 = new JdbmMasterTable<Integer>( recman, registries );
t2.close();
}
Modified: directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java Sat May 10 13:19:40 2008
@@ -38,7 +38,6 @@
import org.apache.directory.server.xdbm.tools.StoreUtils;
import org.apache.directory.server.core.cursor.Cursor;
import org.apache.directory.server.core.entry.ServerEntry;
-import org.apache.directory.server.core.entry.ServerEntryUtils;
import org.apache.directory.server.core.entry.ServerModification;
import org.apache.directory.server.core.entry.DefaultServerAttribute;
import org.apache.directory.server.core.entry.ServerAttribute;
@@ -371,7 +370,7 @@
entry.add( "ou", "Apache" );
entry.add( "commonName", "Jack Daniels");
entry.add( "aliasedObjectName", "cn=Jack Daniels,ou=Engineering,o=Good Times Co." );
- store.add( dn, ServerEntryUtils.toAttributesImpl( entry ) );
+ store.add( dn, entry );
store.delete( 12L ); // drops the alias indices
@@ -411,7 +410,7 @@
entry.add( "objectClass", "top", "person", "organizationalPerson" );
entry.add( "ou", "Sales" );
entry.add( "cn", "Martin King");
- store.add( martinDn, ServerEntryUtils.toAttributesImpl( entry ) );
+ store.add( martinDn, entry );
cursor = idx.forwardCursor( 2L);
cursor.afterLast();
@@ -433,7 +432,7 @@
entry = new DefaultServerEntry( registries, marketingDn );
entry.add( "objectClass", "top", "organizationalUnit" );
entry.add( "ou", "Marketing" );
- store.add( marketingDn, ServerEntryUtils.toAttributesImpl( entry ) );
+ store.add( marketingDn, entry );
// dn id 14
LdapDN jimmyDn = new LdapDN( "cn=Jimmy Wales,ou=Marketing, ou=Sales,o=Good Times Co." );
@@ -442,7 +441,7 @@
entry.add( "objectClass", "top", "person", "organizationalPerson" );
entry.add( "ou", "Marketing" );
entry.add( "cn", "Jimmy Wales");
- store.add( jimmyDn, ServerEntryUtils.toAttributesImpl( entry ) );
+ store.add( jimmyDn, entry );
store.move( marketingDn, newParentDn );
@@ -661,7 +660,7 @@
entry.add( "objectClass", "top", "person", "organizationalPerson" );
entry.add( "ou", "Not Present" );
entry.add( "cn", "Martin King");
- store.add( dn, ServerEntryUtils.toAttributesImpl( entry ) );
+ store.add( dn, entry );
}
@@ -673,7 +672,7 @@
DefaultServerEntry entry = new DefaultServerEntry( registries, dn );
entry.add( "ou", "Sales" );
entry.add( "cn", "Martin King");
- store.add( dn, ServerEntryUtils.toAttributesImpl( entry ) );
+ store.add( dn, entry );
}
@@ -707,7 +706,7 @@
entry.add( "ou", "Engineering" );
entry.add( "cn", "Private Ryan");
- store.add( dn, ServerEntryUtils.toAttributesImpl( entry ) );
+ store.add( dn, entry );
Rdn rdn = new Rdn("sn=James");
@@ -725,7 +724,7 @@
childEntry.add( "ou", "Engineering" );
childEntry.add( "cn", "Private Ryan");
- store.add( childDn, ServerEntryUtils.toAttributesImpl( childEntry ) );
+ store.add( childDn, childEntry );
LdapDN parentDn = new LdapDN( "ou=Sales,o=Good Times Co." );
parentDn.normalize( attributeRegistry.getNormalizerMapping() );
@@ -765,10 +764,10 @@
Modification add = new ServerModification( ModificationOperation.ADD_ATTRIBUTE, attrib );
mods.add( add );
- Attributes attributes = store.lookup( store.getEntryId( dn.toNormName() ) );
+ ServerEntry lookedup = store.lookup( store.getEntryId( dn.toNormName() ) );
store.modify( dn, mods );
- assertTrue( attributes.get( "sn" ).contains( attribVal ) );
+ assertTrue( lookedup.get( "sn" ).contains( attribVal ) );
// testing the store.modify( dn, mod, entry ) API
ServerEntry entry = new DefaultServerEntry( registries, dn );
@@ -776,7 +775,8 @@
entry.add( "telephoneNumber", attribVal );
store.modify( dn, ModificationOperation.ADD_ATTRIBUTE, entry );
- assertTrue( attributes.get( "telephoneNumber" ).contains( attribVal ) );
+ lookedup = store.lookup( store.getEntryId( dn.toNormName() ) );
+ assertTrue( lookedup.get( "telephoneNumber" ).contains( attribVal ) );
}
@@ -796,12 +796,12 @@
Modification add = new ServerModification( ModificationOperation.REPLACE_ATTRIBUTE, attrib );
mods.add( add );
- Attributes attributes = store.lookup( store.getEntryId( dn.toNormName() ) );
+ ServerEntry lookedup = store.lookup( store.getEntryId( dn.toNormName() ) );
- assertEquals( "WAlkeR", attributes.get( "sn" ).get() ); // before replacing
+ assertEquals( "WAlkeR", lookedup.get( "sn" ).get().get() ); // before replacing
store.modify( dn, mods );
- assertEquals( attribVal, attributes.get( "sn" ).get() );
+ assertEquals( attribVal, lookedup.get( "sn" ).get().get() );
// testing the store.modify( dn, mod, entry ) API
ServerEntry entry = new DefaultServerEntry( registries, dn );
@@ -809,7 +809,7 @@
entry.add( "sn", attribVal );
store.modify( dn, ModificationOperation.REPLACE_ATTRIBUTE, entry );
- assertEquals( attribVal, attributes.get( "sn" ).get() );
+ assertEquals( attribVal, lookedup.get( "sn" ).get().get() );
}
@@ -826,12 +826,12 @@
Modification add = new ServerModification( ModificationOperation.REMOVE_ATTRIBUTE, attrib );
mods.add( add );
- Attributes attributes = store.lookup( store.getEntryId( dn.toNormName() ) );
+ ServerEntry lookedup = store.lookup( store.getEntryId( dn.toNormName() ) );
- assertNotNull( attributes.get( "sn" ) );
+ assertNotNull( lookedup.get( "sn" ).get() );
store.modify( dn, mods );
- assertNull( attributes.get( "sn" ) );
+ assertNull( lookedup.get( "sn" ).get() );
// testing the store.modify( dn, mod, entry ) API
ServerEntry entry = new DefaultServerEntry( registries, dn );
@@ -839,10 +839,10 @@
// add an entry for the sake of testing the remove operation
entry.add( "sn", "JWalker" );
store.modify( dn, ModificationOperation.ADD_ATTRIBUTE, entry );
- assertNotNull( attributes.get( "sn" ) );
+ assertNotNull( lookedup.get( "sn" ).get() );
store.modify( dn, ModificationOperation.REMOVE_ATTRIBUTE, entry );
- assertNull( attributes.get( "sn" ) );
+ assertNull( lookedup.get( "sn" ).get() );
}
}
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/AndCursor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/AndCursor.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/AndCursor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/AndCursor.java Sat May 10 13:19:40 2008
@@ -24,9 +24,9 @@
import org.apache.directory.server.core.cursor.AbstractCursor;
import org.apache.directory.server.core.cursor.Cursor;
import org.apache.directory.server.core.cursor.InvalidCursorPositionException;
+import org.apache.directory.server.core.entry.ServerEntry;
import org.apache.directory.shared.ldap.filter.ExprNode;
-import javax.naming.directory.Attributes;
import java.util.*;
@@ -36,17 +36,17 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class AndCursor extends AbstractCursor<IndexEntry<?,Attributes>>
+public class AndCursor extends AbstractCursor<IndexEntry<?, ServerEntry>>
{
private static final String UNSUPPORTED_MSG =
"AndCursors are not ordered and do not support positioning by element.";
- private final Cursor<IndexEntry<?,Attributes>> wrapped;
- private final List<Evaluator<? extends ExprNode, Attributes>> evaluators;
+ private final Cursor<IndexEntry<?,ServerEntry>> wrapped;
+ private final List<Evaluator<? extends ExprNode, ServerEntry>> evaluators;
private boolean available = false;
- public AndCursor( Cursor<IndexEntry<?, Attributes>> wrapped,
- List<Evaluator<? extends ExprNode, Attributes>> evaluators )
+ public AndCursor( Cursor<IndexEntry<?, ServerEntry>> wrapped,
+ List<Evaluator<? extends ExprNode, ServerEntry>> evaluators )
{
this.wrapped = wrapped;
this.evaluators = optimize( evaluators );
@@ -59,13 +59,13 @@
}
- public void before( IndexEntry<?, Attributes> element ) throws Exception
+ public void before( IndexEntry<?, ServerEntry> element ) throws Exception
{
throw new UnsupportedOperationException( UNSUPPORTED_MSG );
}
- public void after( IndexEntry<?, Attributes> element ) throws Exception
+ public void after( IndexEntry<?, ServerEntry> element ) throws Exception
{
throw new UnsupportedOperationException( UNSUPPORTED_MSG );
}
@@ -103,7 +103,7 @@
{
while ( wrapped.previous() )
{
- IndexEntry<?,Attributes> candidate = wrapped.get();
+ IndexEntry<?,ServerEntry> candidate = wrapped.get();
if ( matches( candidate ) )
{
return available = true;
@@ -118,7 +118,7 @@
{
while ( wrapped.next() )
{
- IndexEntry<?,Attributes> candidate = wrapped.get();
+ IndexEntry<?,ServerEntry> candidate = wrapped.get();
if ( matches( candidate ) )
{
return available = true;
@@ -129,7 +129,7 @@
}
- public IndexEntry<?, Attributes> get() throws Exception
+ public IndexEntry<?, ServerEntry> get() throws Exception
{
if ( available )
{
@@ -167,15 +167,15 @@
* @param unoptimized the unoptimized list of Evaluators
* @return optimized Evaluator list with increasing scan count ordering
*/
- private List<Evaluator<? extends ExprNode,Attributes>>
- optimize( List<Evaluator<? extends ExprNode,Attributes>> unoptimized )
+ private List<Evaluator<? extends ExprNode,ServerEntry>>
+ optimize( List<Evaluator<? extends ExprNode,ServerEntry>> unoptimized )
{
- List<Evaluator<? extends ExprNode,Attributes>> optimized =
- new ArrayList<Evaluator<? extends ExprNode,Attributes>>( unoptimized.size() );
+ List<Evaluator<? extends ExprNode,ServerEntry>> optimized =
+ new ArrayList<Evaluator<? extends ExprNode,ServerEntry>>( unoptimized.size() );
optimized.addAll( unoptimized );
- Collections.sort( optimized, new Comparator<Evaluator<?,Attributes>>()
+ Collections.sort( optimized, new Comparator<Evaluator<?,ServerEntry>>()
{
- public int compare( Evaluator<?, Attributes> e1, Evaluator<?, Attributes> e2 )
+ public int compare( Evaluator<?, ServerEntry> e1, Evaluator<?, ServerEntry> e2 )
{
long scanCount1 = ( Long ) e1.getExpression().get( "count" );
long scanCount2 = ( Long ) e2.getExpression().get( "count" );
@@ -204,9 +204,9 @@
}
- private boolean matches( IndexEntry<?, Attributes> indexEntry ) throws Exception
+ private boolean matches( IndexEntry<?, ServerEntry> indexEntry ) throws Exception
{
- for ( Evaluator<?,Attributes> evaluator : evaluators )
+ for ( Evaluator<?,ServerEntry> evaluator : evaluators )
{
if ( ! evaluator.evaluate( indexEntry ) )
{
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/AndEvaluator.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/AndEvaluator.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/AndEvaluator.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/AndEvaluator.java Sat May 10 13:19:40 2008
@@ -23,8 +23,8 @@
import org.apache.directory.shared.ldap.filter.AndNode;
import org.apache.directory.shared.ldap.filter.ExprNode;
import org.apache.directory.server.xdbm.IndexEntry;
+import org.apache.directory.server.core.entry.ServerEntry;
-import javax.naming.directory.Attributes;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
@@ -37,14 +37,14 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $$Rev$$
*/
-public class AndEvaluator implements Evaluator<AndNode,Attributes>
+public class AndEvaluator implements Evaluator<AndNode, ServerEntry>
{
- private final List<Evaluator<? extends ExprNode,Attributes>> evaluators;
+ private final List<Evaluator<? extends ExprNode,ServerEntry>> evaluators;
private final AndNode node;
- public AndEvaluator( AndNode node, List<Evaluator<? extends ExprNode, Attributes>> evaluators )
+ public AndEvaluator( AndNode node, List<Evaluator<? extends ExprNode, ServerEntry>> evaluators )
{
this.node = node;
this.evaluators = optimize( evaluators );
@@ -62,15 +62,15 @@
* @param unoptimized the unoptimized list of Evaluators
* @return optimized Evaluator list with increasing scan count ordering
*/
- private List<Evaluator<? extends ExprNode,Attributes>>
- optimize( List<Evaluator<? extends ExprNode,Attributes>> unoptimized )
+ private List<Evaluator<? extends ExprNode,ServerEntry>>
+ optimize( List<Evaluator<? extends ExprNode,ServerEntry>> unoptimized )
{
- List<Evaluator<? extends ExprNode,Attributes>> optimized =
- new ArrayList<Evaluator<? extends ExprNode,Attributes>>( unoptimized.size() );
+ List<Evaluator<? extends ExprNode,ServerEntry>> optimized =
+ new ArrayList<Evaluator<? extends ExprNode,ServerEntry>>( unoptimized.size() );
optimized.addAll( unoptimized );
- Collections.sort( optimized, new Comparator<Evaluator<?,Attributes>>()
+ Collections.sort( optimized, new Comparator<Evaluator<?,ServerEntry>>()
{
- public int compare( Evaluator<?, Attributes> e1, Evaluator<?, Attributes> e2 )
+ public int compare( Evaluator<?, ServerEntry> e1, Evaluator<?, ServerEntry> e2 )
{
long scanCount1 = ( Long ) e1.getExpression().get( "count" );
long scanCount2 = ( Long ) e2.getExpression().get( "count" );
@@ -99,9 +99,9 @@
}
- public boolean evaluate( IndexEntry<?, Attributes> indexEntry ) throws Exception
+ public boolean evaluate( IndexEntry<?, ServerEntry> indexEntry ) throws Exception
{
- for ( Evaluator<?,Attributes> evaluator : evaluators )
+ for ( Evaluator<?,ServerEntry> evaluator : evaluators )
{
if ( ! evaluator.evaluate( indexEntry ) )
{
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateCursor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateCursor.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateCursor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateCursor.java Sat May 10 13:19:40 2008
@@ -25,8 +25,7 @@
import org.apache.directory.server.core.cursor.AbstractCursor;
import org.apache.directory.server.core.cursor.Cursor;
import org.apache.directory.server.core.cursor.InvalidCursorPositionException;
-
-import javax.naming.directory.Attributes;
+import org.apache.directory.server.core.entry.ServerEntry;
/**
@@ -41,7 +40,7 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $$Rev$$
*/
-public class ApproximateCursor extends AbstractCursor<IndexEntry<?, Attributes>>
+public class ApproximateCursor extends AbstractCursor<IndexEntry<?, ServerEntry>>
{
private static final String UNSUPPORTED_MSG =
"ApproximateCursors only support positioning by element when a user index exists on the asserted attribute.";
@@ -50,16 +49,16 @@
private final ApproximateEvaluator approximateEvaluator;
/** Cursor over attribute entry matching filter: set when index present */
- private final Cursor<IndexEntry<?,Attributes>> userIdxCursor;
+ private final Cursor<IndexEntry<?,ServerEntry>> userIdxCursor;
/** NDN Cursor on all entries in (set when no index on user attribute) */
- private final Cursor<IndexEntry<String,Attributes>> ndnIdxCursor;
+ private final Cursor<IndexEntry<String,ServerEntry>> ndnIdxCursor;
/** used only when ndnIdxCursor is used (no index on attribute) */
private boolean available = false;
- public ApproximateCursor( Store<Attributes> db, ApproximateEvaluator approximateEvaluator ) throws Exception
+ public ApproximateCursor( Store<ServerEntry> db, ApproximateEvaluator approximateEvaluator ) throws Exception
{
this.approximateEvaluator = approximateEvaluator;
@@ -90,7 +89,7 @@
}
- public void before( IndexEntry<?, Attributes> element ) throws Exception
+ public void before( IndexEntry<?, ServerEntry> element ) throws Exception
{
if ( userIdxCursor != null )
{
@@ -103,7 +102,7 @@
}
- public void after( IndexEntry<?, Attributes> element ) throws Exception
+ public void after( IndexEntry<?, ServerEntry> element ) throws Exception
{
if ( userIdxCursor != null )
{
@@ -167,7 +166,7 @@
while( ndnIdxCursor.previous() )
{
- IndexEntry<?,Attributes> candidate = ndnIdxCursor.get();
+ IndexEntry<?,ServerEntry> candidate = ndnIdxCursor.get();
if ( approximateEvaluator.evaluate( candidate ) )
{
return available = true;
@@ -187,7 +186,7 @@
while( ndnIdxCursor.next() )
{
- IndexEntry<?,Attributes> candidate = ndnIdxCursor.get();
+ IndexEntry<?,ServerEntry> candidate = ndnIdxCursor.get();
if ( approximateEvaluator.evaluate( candidate ) )
{
return available = true;
@@ -198,7 +197,7 @@
}
- public IndexEntry<?, Attributes> get() throws Exception
+ public IndexEntry<?, ServerEntry> get() throws Exception
{
if ( userIdxCursor != null )
{
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java Sat May 10 13:19:40 2008
@@ -21,18 +21,17 @@
import org.apache.directory.shared.ldap.filter.ApproximateNode;
-import org.apache.directory.shared.ldap.util.AttributeUtils;
import org.apache.directory.shared.ldap.schema.AttributeType;
import org.apache.directory.shared.ldap.schema.MatchingRule;
import org.apache.directory.shared.ldap.schema.Normalizer;
+import org.apache.directory.shared.ldap.entry.Value;
import org.apache.directory.server.xdbm.IndexEntry;
import org.apache.directory.server.xdbm.Store;
import org.apache.directory.server.xdbm.Index;
import org.apache.directory.server.schema.registries.Registries;
+import org.apache.directory.server.core.entry.ServerEntry;
+import org.apache.directory.server.core.entry.ServerAttribute;
-import javax.naming.directory.Attributes;
-import javax.naming.directory.Attribute;
-import javax.naming.NamingEnumeration;
import java.util.Iterator;
import java.util.Comparator;
@@ -44,18 +43,18 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class ApproximateEvaluator implements Evaluator<ApproximateNode, Attributes>
+public class ApproximateEvaluator implements Evaluator<ApproximateNode, ServerEntry>
{
private final ApproximateNode node;
- private final Store<Attributes> db;
+ private final Store<ServerEntry> db;
private final Registries registries;
private final AttributeType type;
private final Normalizer normalizer;
private final Comparator comparator;
- private final Index<Number,Attributes> idx;
+ private final Index<Number,ServerEntry> idx;
- public ApproximateEvaluator( ApproximateNode node, Store<Attributes> db, Registries registries )
+ public ApproximateEvaluator( ApproximateNode node, Store<ServerEntry> db, Registries registries )
throws Exception
{
this.db = db;
@@ -95,14 +94,14 @@
}
- public boolean evaluate( IndexEntry<?,Attributes> indexEntry ) throws Exception
+ public boolean evaluate( IndexEntry<?,ServerEntry> indexEntry ) throws Exception
{
if ( idx != null )
{
return idx.forward( ( Number ) indexEntry.getValue(), indexEntry.getId() );
}
- Attributes entry = indexEntry.getObject();
+ ServerEntry entry = indexEntry.getObject();
// resuscitate the entry if it has not been and set entry in IndexEntry
if ( null == entry )
@@ -112,7 +111,7 @@
}
// get the attribute
- Attribute attr = AttributeUtils.getAttribute( entry, type );
+ ServerAttribute attr = ( ServerAttribute ) entry.get( type );
// if the attribute does not exist just return false
if ( attr != null && evaluate( attr ) )
@@ -135,7 +134,7 @@
{
AttributeType descendant = descendants.next();
- attr = AttributeUtils.getAttribute( entry, descendant );
+ attr = ( ServerAttribute ) entry.get( descendant );
if ( attr != null && evaluate( attr ) )
{
@@ -149,7 +148,9 @@
}
- private boolean evaluate( Attribute attribute ) throws Exception
+ // TODO - determine if comaparator and index entry should have the Value
+ // wrapper or the raw normalized value
+ private boolean evaluate( ServerAttribute attribute ) throws Exception
{
/*
* Cycle through the attribute values testing normalized version
@@ -157,17 +158,13 @@
* normalizer. The test uses the comparator obtained from the
* appropriate matching rule to perform the check.
*/
- NamingEnumeration values = attribute.getAll();
- while ( values.hasMore() )
+ for ( Value value : attribute )
{
- Object value = normalizer.normalize( values.next() );
+ value.normalize( normalizer );
- // Once match is found cleanup and return true
- //noinspection unchecked
- if ( comparator.compare( value, node.getValue() ) == 0 )
+ if ( comparator.compare( value.getNormalizedValue(), node.getValue().getNormalizedValue() ) == 0 )
{
- values.close();
return true;
}
}
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/CursorBuilder.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/CursorBuilder.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/CursorBuilder.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/CursorBuilder.java Sat May 10 13:19:40 2008
@@ -23,12 +23,12 @@
import java.util.List;
import java.util.ArrayList;
-import javax.naming.directory.Attributes;
import javax.naming.directory.SearchControls;
import org.apache.directory.server.xdbm.IndexEntry;
import org.apache.directory.server.xdbm.Store;
import org.apache.directory.server.core.cursor.Cursor;
+import org.apache.directory.server.core.entry.ServerEntry;
import org.apache.directory.shared.ldap.NotImplementedException;
import org.apache.directory.shared.ldap.filter.*;
@@ -42,7 +42,7 @@
public class CursorBuilder
{
/** The database used by this builder */
- private Store<Attributes> db = null;
+ private Store<ServerEntry> db = null;
/** Evaluator dependency on a EvaluatorBuilder */
private EvaluatorBuilder evaluatorBuilder;
@@ -54,14 +54,14 @@
* @param db database used by this enumerator
* @param evaluatorBuilder the evaluator builder
*/
- public CursorBuilder( Store<Attributes> db, EvaluatorBuilder evaluatorBuilder )
+ public CursorBuilder( Store<ServerEntry> db, EvaluatorBuilder evaluatorBuilder )
{
this.db = db;
this.evaluatorBuilder = evaluatorBuilder;
}
- public Cursor<IndexEntry<?,Attributes>> build( ExprNode node ) throws Exception
+ public Cursor<IndexEntry<?,ServerEntry>> build( ExprNode node ) throws Exception
{
switch ( node.getAssertionType() )
{
@@ -117,11 +117,12 @@
* @return Cursor over candidates satisfying disjunction expression
* @throws Exception on db access failures
*/
- private Cursor<IndexEntry<?,Attributes>> buildOrCursor( OrNode node ) throws Exception
+ private Cursor<IndexEntry<?,ServerEntry>> buildOrCursor( OrNode node ) throws Exception
{
List<ExprNode> children = node.getChildren();
- List<Cursor<IndexEntry<?,Attributes>>> childCursors = new ArrayList<Cursor<IndexEntry<?,Attributes>>>(children.size());
- List<Evaluator> childEvaluators = new ArrayList<Evaluator>( children.size() );
+ List<Cursor<IndexEntry<?,ServerEntry>>> childCursors = new ArrayList<Cursor<IndexEntry<?,ServerEntry>>>(children.size());
+ List<Evaluator<? extends ExprNode, ServerEntry>> childEvaluators
+ = new ArrayList<Evaluator<? extends ExprNode, ServerEntry>>( children.size() );
// Recursively create Cursors and Evaluators for each child expression node
for ( ExprNode child : children )
@@ -142,7 +143,7 @@
* @return Cursor over the conjunction expression
* @throws Exception on db access failures
*/
- private Cursor<IndexEntry<?,Attributes>> buildAndCursor( AndNode node ) throws Exception
+ private Cursor<IndexEntry<?,ServerEntry>> buildAndCursor( AndNode node ) throws Exception
{
int minIndex = 0;
long minValue = Long.MAX_VALUE;
@@ -175,8 +176,8 @@
// Once found we build the child Evaluators minus the one for the minChild
ExprNode minChild = children.get( minIndex );
- List<Evaluator<? extends ExprNode, Attributes>> childEvaluators =
- new ArrayList<Evaluator<? extends ExprNode, Attributes>>( children.size() - 1 );
+ List<Evaluator<? extends ExprNode, ServerEntry>> childEvaluators =
+ new ArrayList<Evaluator<? extends ExprNode, ServerEntry>>( children.size() - 1 );
for ( ExprNode child : children )
{
if ( child == minChild )
@@ -188,7 +189,7 @@
}
// Do recursive call to build min child Cursor then create AndCursor
- Cursor<IndexEntry<?,Attributes>> childCursor = build( minChild );
+ Cursor<IndexEntry<?,ServerEntry>> childCursor = build( minChild );
return new AndCursor( childCursor, childEvaluators );
}
}
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java Sat May 10 13:19:40 2008
@@ -21,7 +21,6 @@
import javax.naming.directory.SearchControls;
-import javax.naming.directory.Attributes;
import org.apache.directory.shared.ldap.filter.AndNode;
import org.apache.directory.shared.ldap.filter.BranchNode;
@@ -33,6 +32,7 @@
import org.apache.directory.server.xdbm.search.Optimizer;
import org.apache.directory.server.xdbm.search.SearchEngine;
import org.apache.directory.server.core.cursor.Cursor;
+import org.apache.directory.server.core.entry.ServerEntry;
/**
@@ -42,14 +42,14 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class DefaultSearchEngine implements SearchEngine<Attributes>
+public class DefaultSearchEngine implements SearchEngine<ServerEntry>
{
/** the Optimizer used by this DefaultSearchEngine */
private final Optimizer optimizer;
/** the Database this DefaultSearchEngine operates on */
- private Store<Attributes> db;
+ private Store<ServerEntry> db;
/** Evaluator flyweight used for filter expression assertions */
- private Evaluator<? extends ExprNode, Attributes> evaluator;
+ private Evaluator<? extends ExprNode, ServerEntry> evaluator;
/** CursorBuilder flyweight that creates enumerations on filter expressions */
private CursorBuilder cursorBuilder;
@@ -66,8 +66,8 @@
* @param evaluator an expression evaluator
* @param optimizer an optimizer to use during search
*/
- public DefaultSearchEngine( Store<Attributes> db,
- Evaluator<? extends ExprNode, Attributes> evaluator,
+ public DefaultSearchEngine( Store<ServerEntry> db,
+ Evaluator<? extends ExprNode, ServerEntry> evaluator,
CursorBuilder cursorBuilder, Optimizer optimizer )
{
this.db = db;
@@ -88,7 +88,7 @@
}
- public Cursor<IndexEntry<?,Attributes>> search( LdapDN base, AliasDerefMode aliasDerefMode, ExprNode filter, SearchControls searchCtls )
+ public Cursor<IndexEntry<?,ServerEntry>> search( LdapDN base, AliasDerefMode aliasDerefMode, ExprNode filter, SearchControls searchCtls )
throws Exception
{
LdapDN effectiveBase;
@@ -136,7 +136,7 @@
*/
public boolean evaluate( ExprNode filter, Long id ) throws Exception
{
- IndexEntry<?,Attributes> rec = new ForwardIndexEntry<Object,Attributes>();
+ IndexEntry<?,ServerEntry> rec = new ForwardIndexEntry<Object,ServerEntry>();
rec.setId( id );
return evaluator.evaluate( rec );
}
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityCursor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityCursor.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityCursor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityCursor.java Sat May 10 13:19:40 2008
@@ -25,8 +25,7 @@
import org.apache.directory.server.core.cursor.AbstractCursor;
import org.apache.directory.server.core.cursor.Cursor;
import org.apache.directory.server.core.cursor.InvalidCursorPositionException;
-
-import javax.naming.directory.Attributes;
+import org.apache.directory.server.core.entry.ServerEntry;
/**
@@ -39,7 +38,7 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $$Rev$$
*/
-public class EqualityCursor extends AbstractCursor<IndexEntry<?, Attributes>>
+public class EqualityCursor extends AbstractCursor<IndexEntry<?, ServerEntry>>
{
private static final String UNSUPPORTED_MSG =
"EqualityCursors only support positioning by element when a user index exists on the asserted attribute.";
@@ -48,16 +47,16 @@
private final EqualityEvaluator equalityEvaluator;
/** Cursor over attribute entry matching filter: set when index present */
- private final Cursor<IndexEntry<?,Attributes>> userIdxCursor;
+ private final Cursor<IndexEntry<?,ServerEntry>> userIdxCursor;
/** NDN Cursor on all entries in (set when no index on user attribute) */
- private final Cursor<IndexEntry<String,Attributes>> ndnIdxCursor;
+ private final Cursor<IndexEntry<String,ServerEntry>> ndnIdxCursor;
/** used only when ndnIdxCursor is used (no index on attribute) */
private boolean available = false;
- public EqualityCursor( Store<Attributes> db, EqualityEvaluator equalityEvaluator ) throws Exception
+ public EqualityCursor( Store<ServerEntry> db, EqualityEvaluator equalityEvaluator ) throws Exception
{
this.equalityEvaluator = equalityEvaluator;
@@ -88,7 +87,7 @@
}
- public void before( IndexEntry<?, Attributes> element ) throws Exception
+ public void before( IndexEntry<?, ServerEntry> element ) throws Exception
{
if ( userIdxCursor != null )
{
@@ -101,7 +100,7 @@
}
- public void after( IndexEntry<?, Attributes> element ) throws Exception
+ public void after( IndexEntry<?, ServerEntry> element ) throws Exception
{
if ( userIdxCursor != null )
{
@@ -165,7 +164,7 @@
while( ndnIdxCursor.previous() )
{
- IndexEntry<?,Attributes> candidate = ndnIdxCursor.get();
+ IndexEntry<?,ServerEntry> candidate = ndnIdxCursor.get();
if ( equalityEvaluator.evaluate( candidate ) )
{
return available = true;
@@ -185,7 +184,7 @@
while( ndnIdxCursor.next() )
{
- IndexEntry<?,Attributes> candidate = ndnIdxCursor.get();
+ IndexEntry<?,ServerEntry> candidate = ndnIdxCursor.get();
if ( equalityEvaluator.evaluate( candidate ) )
{
return available = true;
@@ -196,7 +195,7 @@
}
- public IndexEntry<?, Attributes> get() throws Exception
+ public IndexEntry<?, ServerEntry> get() throws Exception
{
if ( userIdxCursor != null )
{
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java Sat May 10 13:19:40 2008
@@ -21,18 +21,17 @@
import org.apache.directory.shared.ldap.filter.EqualityNode;
-import org.apache.directory.shared.ldap.util.AttributeUtils;
import org.apache.directory.shared.ldap.schema.AttributeType;
import org.apache.directory.shared.ldap.schema.MatchingRule;
import org.apache.directory.shared.ldap.schema.Normalizer;
+import org.apache.directory.shared.ldap.entry.Value;
import org.apache.directory.server.xdbm.IndexEntry;
import org.apache.directory.server.xdbm.Store;
import org.apache.directory.server.xdbm.Index;
import org.apache.directory.server.schema.registries.Registries;
+import org.apache.directory.server.core.entry.ServerEntry;
+import org.apache.directory.server.core.entry.ServerAttribute;
-import javax.naming.directory.Attributes;
-import javax.naming.directory.Attribute;
-import javax.naming.NamingEnumeration;
import java.util.Iterator;
import java.util.Comparator;
@@ -44,18 +43,18 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class EqualityEvaluator implements Evaluator<EqualityNode, Attributes>
+public class EqualityEvaluator implements Evaluator<EqualityNode, ServerEntry>
{
private final EqualityNode node;
- private final Store<Attributes> db;
+ private final Store<ServerEntry> db;
private final Registries registries;
private final AttributeType type;
private final Normalizer normalizer;
private final Comparator comparator;
- private final Index<Number,Attributes> idx;
+ private final Index<Number,ServerEntry> idx;
- public EqualityEvaluator( EqualityNode node, Store<Attributes> db, Registries registries )
+ public EqualityEvaluator( EqualityNode node, Store<ServerEntry> db, Registries registries )
throws Exception
{
this.db = db;
@@ -95,14 +94,14 @@
}
- public boolean evaluate( IndexEntry<?,Attributes> indexEntry ) throws Exception
+ public boolean evaluate( IndexEntry<?,ServerEntry> indexEntry ) throws Exception
{
if ( idx != null )
{
return idx.forward( ( Number ) indexEntry.getValue(), indexEntry.getId() );
}
- Attributes entry = indexEntry.getObject();
+ ServerEntry entry = indexEntry.getObject();
// resuscitate the entry if it has not been and set entry in IndexEntry
if ( null == entry )
@@ -112,7 +111,7 @@
}
// get the attribute
- Attribute attr = AttributeUtils.getAttribute( entry, type );
+ ServerAttribute attr = ( ServerAttribute ) entry.get( type );
// if the attribute does not exist just return false
if ( attr != null && evaluate( attr ) )
@@ -135,7 +134,7 @@
{
AttributeType descendant = descendants.next();
- attr = AttributeUtils.getAttribute( entry, descendant );
+ attr = ( ServerAttribute ) entry.get( descendant );
if ( attr != null && evaluate( attr ) )
{
@@ -149,7 +148,9 @@
}
- private boolean evaluate( Attribute attribute ) throws Exception
+ // TODO - determine if comaparator and index entry should have the Value
+ // wrapper or the raw normalized value
+ private boolean evaluate( ServerAttribute attribute ) throws Exception
{
/*
* Cycle through the attribute values testing normalized version
@@ -157,17 +158,12 @@
* normalizer. The test uses the comparator obtained from the
* appropriate matching rule to perform the check.
*/
- NamingEnumeration values = attribute.getAll();
-
- while ( values.hasMore() )
+ for ( Value value : attribute )
{
- Object value = normalizer.normalize( values.next() );
+ value.normalize( normalizer );
- // Once match is found cleanup and return true
- //noinspection unchecked
- if ( comparator.compare( value, node.getValue() ) == 0 )
+ if ( comparator.compare( value.getNormalizedValue(), node.getValue().getNormalizedValue() ) == 0 )
{
- values.close();
return true;
}
}
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EvaluatorBuilder.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EvaluatorBuilder.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EvaluatorBuilder.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/EvaluatorBuilder.java Sat May 10 13:19:40 2008
@@ -25,6 +25,7 @@
import org.apache.directory.server.schema.registries.Registries;
import org.apache.directory.server.xdbm.Store;
+import org.apache.directory.server.core.entry.ServerEntry;
import org.apache.directory.shared.ldap.filter.*;
import org.apache.directory.shared.ldap.NotImplementedException;
@@ -40,7 +41,7 @@
*/
public class EvaluatorBuilder
{
- private final Store<Attributes> db;
+ private final Store<ServerEntry> db;
private final Registries registries;
@@ -52,14 +53,14 @@
* @param registries the schema registries
* @throws Exception failure to access db or lookup schema in registries
*/
- public EvaluatorBuilder( Store<Attributes> db, Registries registries ) throws Exception
+ public EvaluatorBuilder( Store<ServerEntry> db, Registries registries ) throws Exception
{
this.db = db;
this.registries = registries;
}
- public Evaluator<? extends ExprNode, Attributes> build( ExprNode node ) throws Exception
+ public Evaluator<? extends ExprNode, ServerEntry> build( ExprNode node ) throws Exception
{
switch ( node.getAssertionType() )
{
@@ -78,11 +79,11 @@
case SCOPE:
if ( ( ( ScopeNode ) node ).getScope() == SearchControls.ONELEVEL_SCOPE )
{
- return new OneLevelScopeEvaluator<Attributes>( db, ( ScopeNode ) node );
+ return new OneLevelScopeEvaluator<ServerEntry>( db, ( ScopeNode ) node );
}
else
{
- return new SubtreeScopeEvaluator<Attributes>( db, ( ScopeNode ) node );
+ return new SubtreeScopeEvaluator<ServerEntry>( db, ( ScopeNode ) node );
}
case SUBSTRING:
return new SubstringEvaluator( ( SubstringNode ) node, db, registries );
@@ -111,8 +112,8 @@
AndEvaluator buildAndEvaluator( AndNode node ) throws Exception
{
List<ExprNode> children = node.getChildren();
- List<Evaluator<? extends ExprNode,Attributes>> evaluators =
- new ArrayList<Evaluator<? extends ExprNode,Attributes>>( children.size() );
+ List<Evaluator<? extends ExprNode,ServerEntry>> evaluators =
+ new ArrayList<Evaluator<? extends ExprNode,ServerEntry>>( children.size() );
for ( ExprNode child : children )
{
evaluators.add( build( child ) );
@@ -124,8 +125,8 @@
OrEvaluator buildOrEvaluator( OrNode node ) throws Exception
{
List<ExprNode> children = node.getChildren();
- List<Evaluator<? extends ExprNode,Attributes>> evaluators =
- new ArrayList<Evaluator<? extends ExprNode,Attributes>>( children.size() );
+ List<Evaluator<? extends ExprNode,ServerEntry>> evaluators =
+ new ArrayList<Evaluator<? extends ExprNode,ServerEntry>>( children.size() );
for ( ExprNode child : children )
{
evaluators.add( build( child ) );
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqCursor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqCursor.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqCursor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqCursor.java Sat May 10 13:19:40 2008
@@ -26,8 +26,7 @@
import org.apache.directory.server.core.cursor.AbstractCursor;
import org.apache.directory.server.core.cursor.Cursor;
import org.apache.directory.server.core.cursor.InvalidCursorPositionException;
-
-import javax.naming.directory.Attributes;
+import org.apache.directory.server.core.entry.ServerEntry;
/**
@@ -40,7 +39,7 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $$Rev$$
*/
-public class GreaterEqCursor extends AbstractCursor<IndexEntry<?, Attributes>>
+public class GreaterEqCursor extends AbstractCursor<IndexEntry<?, ServerEntry>>
{
private static final String UNSUPPORTED_MSG =
"GreaterEqCursors only support positioning by element when a user index exists on the asserted attribute.";
@@ -49,23 +48,23 @@
private final GreaterEqEvaluator greaterEqEvaluator;
/** Cursor over attribute entry matching filter: set when index present */
- private final Cursor<IndexEntry<?,Attributes>> userIdxCursor;
+ private final Cursor<IndexEntry<?,ServerEntry>> userIdxCursor;
/** NDN Cursor on all entries in (set when no index on user attribute) */
- private final Cursor<IndexEntry<String,Attributes>> ndnIdxCursor;
+ private final Cursor<IndexEntry<String,ServerEntry>> ndnIdxCursor;
/**
* Used to store indexEntry from ndnCandidate so it can be saved after
* call to evaluate() which changes the value so it's not referring to
* the NDN but to the value of the attribute instead.
*/
- IndexEntry<String, Attributes> ndnCandidate;
+ IndexEntry<String, ServerEntry> ndnCandidate;
/** used in both modes */
private boolean available = false;
- public GreaterEqCursor( Store<Attributes> db, GreaterEqEvaluator greaterEqEvaluator ) throws Exception
+ public GreaterEqCursor( Store<ServerEntry> db, GreaterEqEvaluator greaterEqEvaluator ) throws Exception
{
this.greaterEqEvaluator = greaterEqEvaluator;
@@ -90,7 +89,7 @@
}
- public void before( IndexEntry<?, Attributes> element ) throws Exception
+ public void before( IndexEntry<?, ServerEntry> element ) throws Exception
{
if ( userIdxCursor != null )
{
@@ -120,7 +119,7 @@
}
- public void after( IndexEntry<?, Attributes> element ) throws Exception
+ public void after( IndexEntry<?, ServerEntry> element ) throws Exception
{
if ( userIdxCursor != null )
{
@@ -163,7 +162,7 @@
{
if ( userIdxCursor != null )
{
- IndexEntry<Object,Attributes> advanceTo = new ForwardIndexEntry<Object,Attributes>();
+ IndexEntry<Object,ServerEntry> advanceTo = new ForwardIndexEntry<Object,ServerEntry>();
advanceTo.setValue( greaterEqEvaluator.getExpression().getValue() );
userIdxCursor.before( advanceTo );
}
@@ -217,7 +216,7 @@
*/
while ( userIdxCursor.previous() )
{
- IndexEntry<?,Attributes> candidate = userIdxCursor.get();
+ IndexEntry<?,ServerEntry> candidate = userIdxCursor.get();
//noinspection unchecked
if ( greaterEqEvaluator.getComparator().compare( candidate.getValue(), greaterEqEvaluator.getExpression().getValue() ) >= 0 )
{
@@ -265,7 +264,7 @@
}
- public IndexEntry<?, Attributes> get() throws Exception
+ public IndexEntry<?, ServerEntry> get() throws Exception
{
if ( userIdxCursor != null )
{
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java Sat May 10 13:19:40 2008
@@ -21,18 +21,17 @@
import org.apache.directory.shared.ldap.filter.GreaterEqNode;
-import org.apache.directory.shared.ldap.util.AttributeUtils;
import org.apache.directory.shared.ldap.schema.AttributeType;
import org.apache.directory.shared.ldap.schema.MatchingRule;
import org.apache.directory.shared.ldap.schema.Normalizer;
+import org.apache.directory.shared.ldap.entry.Value;
import org.apache.directory.server.xdbm.IndexEntry;
import org.apache.directory.server.xdbm.Store;
import org.apache.directory.server.xdbm.Index;
import org.apache.directory.server.schema.registries.Registries;
+import org.apache.directory.server.core.entry.ServerEntry;
+import org.apache.directory.server.core.entry.ServerAttribute;
-import javax.naming.directory.Attributes;
-import javax.naming.directory.Attribute;
-import javax.naming.NamingEnumeration;
import java.util.Iterator;
import java.util.Comparator;
@@ -44,18 +43,18 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class GreaterEqEvaluator implements Evaluator<GreaterEqNode, Attributes>
+public class GreaterEqEvaluator implements Evaluator<GreaterEqNode, ServerEntry>
{
private final GreaterEqNode node;
- private final Store<Attributes> db;
+ private final Store<ServerEntry> db;
private final Registries registries;
private final AttributeType type;
private final Normalizer normalizer;
private final Comparator comparator;
- private final Index<Object,Attributes> idx;
+ private final Index<Object,ServerEntry> idx;
- public GreaterEqEvaluator( GreaterEqNode node, Store<Attributes> db, Registries registries )
+ public GreaterEqEvaluator( GreaterEqNode node, Store<ServerEntry> db, Registries registries )
throws Exception
{
this.db = db;
@@ -121,14 +120,14 @@
}
- public boolean evaluate( IndexEntry<?,Attributes> indexEntry ) throws Exception
+ public boolean evaluate( IndexEntry<?,ServerEntry> indexEntry ) throws Exception
{
if ( idx != null )
{
return idx.reverseGreaterOrEq( indexEntry.getId(), node.getValue() );
}
- Attributes entry = indexEntry.getObject();
+ ServerEntry entry = indexEntry.getObject();
// resuscitate the entry if it has not been and set entry in IndexEntry
if ( null == entry )
@@ -138,10 +137,10 @@
}
// get the attribute
- Attribute attr = AttributeUtils.getAttribute( entry, type );
+ ServerAttribute attr = ( ServerAttribute ) entry.get( type );
- // if the attribute does not exist just return false
- if ( attr != null && evaluate( ( IndexEntry<Object,Attributes> ) indexEntry, attr ) )
+ // if the attribute exists and has a greater than or equal value return true
+ if ( attr != null && evaluate( ( IndexEntry<Object,ServerEntry> ) indexEntry, attr ) )
{
return true;
}
@@ -161,9 +160,9 @@
{
AttributeType descendant = descendants.next();
- attr = AttributeUtils.getAttribute( entry, descendant );
+ attr = ( ServerAttribute ) entry.get( descendant );
- if ( attr != null && evaluate( ( IndexEntry<Object,Attributes> ) indexEntry, attr ) )
+ if ( attr != null && evaluate( ( IndexEntry<Object, ServerEntry> ) indexEntry, attr ) )
{
return true;
}
@@ -175,7 +174,9 @@
}
- private boolean evaluate( IndexEntry<Object,Attributes> indexEntry, Attribute attribute ) throws Exception
+ // TODO - determine if comaparator and index entry should have the Value
+ // wrapper or the raw normalized value
+ private boolean evaluate( IndexEntry<Object,ServerEntry> indexEntry, ServerAttribute attribute ) throws Exception
{
/*
* Cycle through the attribute values testing normalized version
@@ -183,18 +184,13 @@
* normalizer. The test uses the comparator obtained from the
* appropriate matching rule to perform the check.
*/
- NamingEnumeration values = attribute.getAll();
-
- while ( values.hasMore() )
+ for ( Value value : attribute )
{
- Object value = normalizer.normalize( values.next() );
+ value.normalize( normalizer );
- // Once match is found cleanup and return true
- //noinspection unchecked
- if ( comparator.compare( value, node.getValue() ) >= 0 )
+ if ( comparator.compare( value.getNormalizedValue(), node.getValue().getNormalizedValue() ) >= 0 )
{
- indexEntry.setValue( value );
- values.close();
+ indexEntry.setValue( value.getNormalizedValue() );
return true;
}
}
Modified: directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqCursor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqCursor.java?rev=655151&r1=655150&r2=655151&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqCursor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/xdbm-search/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqCursor.java Sat May 10 13:19:40 2008
@@ -26,8 +26,7 @@
import org.apache.directory.server.core.cursor.AbstractCursor;
import org.apache.directory.server.core.cursor.Cursor;
import org.apache.directory.server.core.cursor.InvalidCursorPositionException;
-
-import javax.naming.directory.Attributes;
+import org.apache.directory.server.core.entry.ServerEntry;
/**
@@ -40,7 +39,7 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $$Rev$$
*/
-public class LessEqCursor extends AbstractCursor<IndexEntry<?, Attributes>>
+public class LessEqCursor extends AbstractCursor<IndexEntry<?, ServerEntry>>
{
private static final String UNSUPPORTED_MSG =
"LessEqCursors only support positioning by element when a user index exists on the asserted attribute.";
@@ -49,23 +48,23 @@
private final LessEqEvaluator lessEqEvaluator;
/** Cursor over attribute entry matching filter: set when index present */
- private final Cursor<IndexEntry<?,Attributes>> userIdxCursor;
+ private final Cursor<IndexEntry<?,ServerEntry>> userIdxCursor;
/** NDN Cursor on all entries in (set when no index on user attribute) */
- private final Cursor<IndexEntry<String,Attributes>> ndnIdxCursor;
+ private final Cursor<IndexEntry<String,ServerEntry>> ndnIdxCursor;
/**
* Used to store indexEntry from ndnCandidate so it can be saved after
* call to evaluate() which changes the value so it's not referring to
* the NDN but to the value of the attribute instead.
*/
- IndexEntry<String, Attributes> ndnCandidate;
+ IndexEntry<String, ServerEntry> ndnCandidate;
/** used in both modes */
private boolean available = false;
- public LessEqCursor( Store<Attributes> db, LessEqEvaluator lessEqEvaluator ) throws Exception
+ public LessEqCursor( Store<ServerEntry> db, LessEqEvaluator lessEqEvaluator ) throws Exception
{
this.lessEqEvaluator = lessEqEvaluator;
@@ -90,7 +89,7 @@
}
- public void before( IndexEntry<?, Attributes> element ) throws Exception
+ public void before( IndexEntry<?, ServerEntry> element ) throws Exception
{
if ( userIdxCursor != null )
{
@@ -134,7 +133,7 @@
}
- public void after( IndexEntry<?, Attributes> element ) throws Exception
+ public void after( IndexEntry<?, ServerEntry> element ) throws Exception
{
if ( userIdxCursor != null )
{
@@ -190,7 +189,7 @@
{
if ( userIdxCursor != null )
{
- IndexEntry<Object,Attributes> advanceTo = new ForwardIndexEntry<Object,Attributes>();
+ IndexEntry<Object,ServerEntry> advanceTo = new ForwardIndexEntry<Object,ServerEntry>();
advanceTo.setValue( lessEqEvaluator.getExpression().getValue() );
userIdxCursor.after( advanceTo );
}
@@ -259,7 +258,7 @@
*/
while ( userIdxCursor.next() )
{
- IndexEntry<?,Attributes> candidate = userIdxCursor.get();
+ IndexEntry<?,ServerEntry> candidate = userIdxCursor.get();
//noinspection unchecked
if ( lessEqEvaluator.getComparator().compare( candidate.getValue(), lessEqEvaluator.getExpression().getValue() ) <= 0 )
{
@@ -287,7 +286,7 @@
}
- public IndexEntry<?, Attributes> get() throws Exception
+ public IndexEntry<?, ServerEntry> get() throws Exception
{
if ( userIdxCursor != null )
{