diff options
Diffstat (limited to 'base/server/cmscore/src')
-rw-r--r-- | base/server/cmscore/src/com/netscape/cmscore/dbs/Database.java | 15 | ||||
-rw-r--r-- | base/server/cmscore/src/com/netscape/cmscore/dbs/LDAPDatabase.java | 11 |
2 files changed, 18 insertions, 8 deletions
diff --git a/base/server/cmscore/src/com/netscape/cmscore/dbs/Database.java b/base/server/cmscore/src/com/netscape/cmscore/dbs/Database.java index 3df2d5919..f8c55204b 100644 --- a/base/server/cmscore/src/com/netscape/cmscore/dbs/Database.java +++ b/base/server/cmscore/src/com/netscape/cmscore/dbs/Database.java @@ -18,6 +18,7 @@ package com.netscape.cmscore.dbs; +import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; @@ -43,8 +44,18 @@ public class Database<E> { CMS.debug("Initializing " + name + " database"); } - public Collection<E> getRecords() throws Exception { - return records.values(); + /** + * Find records matching filter + */ + public Collection<E> findRecords(String filter) throws Exception { + + Collection<E> results = new ArrayList<E>(); + for (String id : records.keySet()) { + if (filter != null && !id.contains(filter)) continue; + results.add(records.get(id)); + } + + return results; } public E getRecord(String id) throws Exception { diff --git a/base/server/cmscore/src/com/netscape/cmscore/dbs/LDAPDatabase.java b/base/server/cmscore/src/com/netscape/cmscore/dbs/LDAPDatabase.java index f6ded787b..4c3ac8dfb 100644 --- a/base/server/cmscore/src/com/netscape/cmscore/dbs/LDAPDatabase.java +++ b/base/server/cmscore/src/com/netscape/cmscore/dbs/LDAPDatabase.java @@ -98,14 +98,14 @@ public abstract class LDAPDatabase<E extends IDBObj> extends Database<E> { public abstract String createFilter(String filter); @Override - public Collection<E> getRecords() throws Exception { - CMS.debug("LDAPDatabase: getRecords()"); + public Collection<E> findRecords(String filter) throws Exception { + CMS.debug("LDAPDatabase: findRecords()"); try (IDBSSession session = dbSubsystem.createSession()) { Collection<E> list = new ArrayList<E>(); - - CMS.debug("LDAPDatabase: searching " + baseDN); - IDBSearchResults results = session.search(baseDN, createFilter(null)); + filter = createFilter(filter); + CMS.debug("LDAPDatabase: searching " + baseDN + " with filter " + filter); + IDBSearchResults results = session.search(baseDN, filter); while (results.hasMoreElements()) { @SuppressWarnings("unchecked") @@ -167,5 +167,4 @@ public abstract class LDAPDatabase<E extends IDBObj> extends Database<E> { session.delete(dn); } } - } |