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 TypeMethodDescriptionintgetElementAt(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.intget the top of the buffergetJumpToElementAt(int i) Retrieves and jumps to element in the given position.booleangetPage(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.booleanCalled by application to scroll the list with initial letters.intget the virutal selected indexintgetSize()Retrieves the size of this virtual list.intintReturns current index.voidprocessElements(int startidx, int endidx, IElementProcessor ep) This function processes elements as soon as it arrives.voidsetPageSize(int size) Set the paging size of this virtual list.voidsetSortKey(String sortKey) set the sort keyvoidsetSortKey(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:
setPageSizein interfaceIDBVirtualList<E extends IDBObj>- Parameters:
size- the page size
-
setSortKey
set the sort key- Specified by:
setSortKeyin interfaceIDBVirtualList<E extends IDBObj>- Parameters:
sortKey- the attribute to sort by- Throws:
EBaseException- failed to set
-
setSortKey
set the sort key- Specified by:
setSortKeyin 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:
getSizein interfaceIDBVirtualList<E extends IDBObj>- Returns:
- current size in list
-
getSizeBeforeJumpTo
public int getSizeBeforeJumpTo()Description copied from interface:IDBVirtualListReturns current index.- Specified by:
getSizeBeforeJumpToin interfaceIDBVirtualList<E extends IDBObj>- Returns:
- current index
-
getSizeAfterJumpTo
public int getSizeAfterJumpTo()- Specified by:
getSizeAfterJumpToin interfaceIDBVirtualList<E extends IDBObj>
-
getCurrentIndex
public int getCurrentIndex()- Specified by:
getCurrentIndexin 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:
getPagein 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:
getPagein 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:
getElementAtin interfaceIDBVirtualList<E extends IDBObj>- Parameters:
index- the index of the element to fetch
-
getJumpToElementAt
Description copied from interface:IDBVirtualListRetrieves and jumps to element in the given position.- Specified by:
getJumpToElementAtin 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:
processElementsin 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:
getSelectedIndexin interfaceIDBVirtualList<E extends IDBObj>- Returns:
- selected index
-
getFirstIndex
public int getFirstIndex()get the top of the buffer- Specified by:
getFirstIndexin interfaceIDBVirtualList<E extends IDBObj>- Returns:
- first index
-