Package com.netscape.cmscore.dbs
Class DBVirtualList<E extends IDBObj>
java.lang.Object
com.netscape.cmscore.dbs.DBVirtualList<E>
- All Implemented Interfaces:
IDBVirtualList<E>
A class represents a virtual list of search results.
Note that this class must be used with DS4.0.
- Version:
- $Revision$, $Date$
- Author:
- thomask, mzhao
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDBVirtualList
(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs) Constructs a virtual list.DBVirtualList
(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs, String sortKey) Constructs a virtual list.DBVirtualList
(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs, String[] sortKey) Constructs a virtual list.DBVirtualList
(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs, String[] sortKey, int pageSize) Constructs a virtual list.DBVirtualList
(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs, String sortKey, int pageSize) Constructs a virtual list.DBVirtualList
(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs, String startFrom, String sortKey, int pageSize) -
Method Summary
Modifier and TypeMethodDescriptionint
getElementAt
(int index) fetch data of a single list item Recommend to call getSize() before getElementAt() or getElements() since you'd better check if the index is out of bound first.int
get the top of the buffergetJumpToElementAt
(int i) Retrieves and jumps to element in the given position.boolean
getPage
(int first) Get a page starting at "first" (although we may also fetch some preceding entries) Recommend to call getSize() before getElementAt() or getElements() since you'd better check if the index is out of bound first.boolean
Called by application to scroll the list with initial letters.int
get the virutal selected indexint
getSize()
Retrieves the size of this virtual list.int
int
Returns current index.void
processElements
(int startidx, int endidx, IElementProcessor ep) This function processes elements as soon as it arrives.void
setPageSize
(int size) Set the paging size of this virtual list.void
setSortKey
(String sortKey) set the sort keyvoid
setSortKey
(String[] sortKeys) set the sort key
-
Field Details
-
logger
public static org.slf4j.Logger logger
-
-
Constructor Details
-
DBVirtualList
public DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs) throws EBaseException Constructs a virtual list. Be sure to setPageSize() later if your pageSize is not the default 10 Be sure to setSortKey() before fetchs param registry the registry of attribute mappers param c the ldap connection. It has to be version 3 and upper param base the base distinguished name to search from param filter search filter specifying the search criteria param attrs list of attributes that you want returned in the search results- Throws:
EBaseException
-
DBVirtualList
public DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs, String[] sortKey) throws EBaseException Constructs a virtual list. Be sure to setPageSize() later if your pageSize is not the default 10 param registry the registry of attribute mappers param c the ldap connection. It has to be version 3 and upper param base the base distinguished name to search from param filter search filter specifying the search criteria param attrs list of attributes that you want returned in the search results param sortKey the attributes to sort by- Throws:
EBaseException
-
DBVirtualList
public DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs, String sortKey) throws EBaseException Constructs a virtual list. Be sure to setPageSize() later if your pageSize is not the default 10 param registry the registry of attribute mappers param c the ldap connection. It has to be version 3 and upper param base the base distinguished name to search from param filter search filter specifying the search criteria param attrs list of attributes that you want returned in the search results param sortKey the attribute to sort by- Throws:
EBaseException
-
DBVirtualList
public DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs, String[] sortKey, int pageSize) throws EBaseException Constructs a virtual list. param registry the registry of attribute mappers param c the ldap connection. It has to be version 3 and upper param base the base distinguished name to search from param filter search filter specifying the search criteria param attrs list of attributes that you want returned in the search results param sortKey the attributes to sort by param pageSize the size of a page. There is a 3*pageSize buffer maintained so pageUp and pageDown won't invoke fetch from ldap server- Throws:
EBaseException
-
DBVirtualList
public DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs, String sortKey, int pageSize) throws EBaseException Constructs a virtual list. param registry the registry of attribute mappers param c the ldap connection. It has to be version 3 and upper param base the base distinguished name to search from param filter search filter specifying the search criteria param attrs list of attributes that you want returned in the search results param sortKey the attribute to sort by param pageSize the size of a page. There is a 3*pageSize buffer maintained so pageUp and pageDown won't invoke fetch from ldap server- Throws:
EBaseException
-
DBVirtualList
public DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, String base, String filter, String[] attrs, String startFrom, String sortKey, int pageSize) throws EBaseException - Throws:
EBaseException
-
-
Method Details
-
setPageSize
public void setPageSize(int size) Set the paging size of this virtual list. The page size here is just a buffer size. A buffer is kept around that is three times as large as the number of visible entries. That way, you can scroll up/down several items(up to a page-full) without refetching entries from the directory.- Specified by:
setPageSize
in interfaceIDBVirtualList<E extends IDBObj>
- Parameters:
size
- the page size
-
setSortKey
set the sort key- Specified by:
setSortKey
in interfaceIDBVirtualList<E extends IDBObj>
- Parameters:
sortKey
- the attribute to sort by- Throws:
EBaseException
- failed to set
-
setSortKey
set the sort key- Specified by:
setSortKey
in interfaceIDBVirtualList<E extends IDBObj>
- Parameters:
sortKeys
- the attributes to sort by- Throws:
EBaseException
- failed to set
-
getSize
public int getSize()Retrieves the size of this virtual list. Recommend to call getSize() before getElementAt() or getElements() since you'd better check if the index is out of bound first.- Specified by:
getSize
in interfaceIDBVirtualList<E extends IDBObj>
- Returns:
- current size in list
-
getSizeBeforeJumpTo
public int getSizeBeforeJumpTo()Description copied from interface:IDBVirtualList
Returns current index.- Specified by:
getSizeBeforeJumpTo
in interfaceIDBVirtualList<E extends IDBObj>
- Returns:
- current index
-
getSizeAfterJumpTo
public int getSizeAfterJumpTo()- Specified by:
getSizeAfterJumpTo
in interfaceIDBVirtualList<E extends IDBObj>
-
getCurrentIndex
public int getCurrentIndex()- Specified by:
getCurrentIndex
in interfaceIDBVirtualList<E extends IDBObj>
-
getPage
public boolean getPage(int first) Get a page starting at "first" (although we may also fetch some preceding entries) Recommend to call getSize() before getElementAt() or getElements() since you'd better check if the index is out of bound first.- Specified by:
getPage
in interfaceIDBVirtualList<E extends IDBObj>
- Parameters:
first
- the index of the first entry of the page you want to fetch
-
getPage
Called by application to scroll the list with initial letters. Consider text to be an initial substring of the attribute of the primary sorting key(the first one specified in the sort key array) of an entry. If no entries match, the one just before(or after, if none before) will be returned as mSelectedIndex- Specified by:
getPage
in interfaceIDBVirtualList<E extends IDBObj>
- Parameters:
text
- the prefix of the first entry of the page you want to fetch
-
getElementAt
fetch data of a single list item Recommend to call getSize() before getElementAt() or getElements() since you'd better check if the index is out of bound first. If the index is out of range of the virtual list, an exception will be thrown and return null- Specified by:
getElementAt
in interfaceIDBVirtualList<E extends IDBObj>
- Parameters:
index
- the index of the element to fetch
-
getJumpToElementAt
Description copied from interface:IDBVirtualList
Retrieves and jumps to element in the given position.- Specified by:
getJumpToElementAt
in interfaceIDBVirtualList<E extends IDBObj>
- Parameters:
i
- position- Returns:
- object
-
processElements
This function processes elements as soon as it arrives. It is more memory-efficient.- Specified by:
processElements
in interfaceIDBVirtualList<E extends IDBObj>
- Parameters:
startidx
- starting indexendidx
- ending indexep
- object to call- Throws:
EBaseException
- failed to process elements
-
getSelectedIndex
public int getSelectedIndex()get the virutal selected index- Specified by:
getSelectedIndex
in interfaceIDBVirtualList<E extends IDBObj>
- Returns:
- selected index
-
getFirstIndex
public int getFirstIndex()get the top of the buffer- Specified by:
getFirstIndex
in interfaceIDBVirtualList<E extends IDBObj>
- Returns:
- first index
-