Package com.netscape.cmscore.dbs
Class DBVirtualList<E extends IDBObj>
- java.lang.Object
-
- com.netscape.cmscore.dbs.DBVirtualList<E>
-
- All Implemented Interfaces:
IDBVirtualList<E>
public class DBVirtualList<E extends IDBObj> extends java.lang.Object implements 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 Modifier and Type Field Description static org.slf4j.Logger
logger
-
Constructor Summary
Constructors Constructor Description DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, java.lang.String base, java.lang.String filter, java.lang.String[] attrs)
Constructs a virtual list.DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, java.lang.String base, java.lang.String filter, java.lang.String[] attrs, java.lang.String sortKey)
Constructs a virtual list.DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, java.lang.String base, java.lang.String filter, java.lang.String[] attrs, java.lang.String[] sortKey)
Constructs a virtual list.DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, java.lang.String base, java.lang.String filter, java.lang.String[] attrs, java.lang.String[] sortKey, int pageSize)
Constructs a virtual list.DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, java.lang.String base, java.lang.String filter, java.lang.String[] attrs, java.lang.String sortKey, int pageSize)
Constructs a virtual list.DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, java.lang.String base, java.lang.String filter, java.lang.String[] attrs, java.lang.String startFrom, java.lang.String sortKey, int pageSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getCurrentIndex()
E
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
getFirstIndex()
get the top of the bufferE
getJumpToElementAt(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
getPage(java.lang.String text)
Called by application to scroll the list with initial letters.int
getSelectedIndex()
get the virutal selected indexint
getSize()
Retrieves the size of this virtual list.int
getSizeAfterJumpTo()
int
getSizeBeforeJumpTo()
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(java.lang.String sortKey)
set the sort keyvoid
setSortKey(java.lang.String[] sortKeys)
set the sort key
-
-
-
Constructor Detail
-
DBVirtualList
public DBVirtualList(DBRegistry registry, netscape.ldap.LDAPConnection c, java.lang.String base, java.lang.String filter, java.lang.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, java.lang.String base, java.lang.String filter, java.lang.String[] attrs, java.lang.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, java.lang.String base, java.lang.String filter, java.lang.String[] attrs, java.lang.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, java.lang.String base, java.lang.String filter, java.lang.String[] attrs, java.lang.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, java.lang.String base, java.lang.String filter, java.lang.String[] attrs, java.lang.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, java.lang.String base, java.lang.String filter, java.lang.String[] attrs, java.lang.String startFrom, java.lang.String sortKey, int pageSize) throws EBaseException
- Throws:
EBaseException
-
-
Method Detail
-
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
public void setSortKey(java.lang.String sortKey) throws EBaseException
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
public void setSortKey(java.lang.String[] sortKeys) throws EBaseException
set the sort key- Specified by:
setSortKey
in interfaceIDBVirtualList<E extends IDBObj>
- Parameters:
sortKey
- 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
public boolean getPage(java.lang.String text)
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
public E 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. 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
public E getJumpToElementAt(int i)
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
public void processElements(int startidx, int endidx, IElementProcessor ep) throws EBaseException
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
-
-