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 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 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 interface IDBVirtualList<E extends IDBObj>
      Parameters:
      size - the page size
    • setSortKey

      public void setSortKey(String sortKey) throws EBaseException
      set the sort key
      Specified by:
      setSortKey in interface IDBVirtualList<E extends IDBObj>
      Parameters:
      sortKey - the attribute to sort by
      Throws:
      EBaseException - failed to set
    • setSortKey

      public void setSortKey(String[] sortKeys) throws EBaseException
      set the sort key
      Specified by:
      setSortKey in interface IDBVirtualList<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 interface IDBVirtualList<E extends IDBObj>
      Returns:
      current size in list
    • getSizeBeforeJumpTo

      public int getSizeBeforeJumpTo()
      Description copied from interface: IDBVirtualList
      Returns current index.
      Specified by:
      getSizeBeforeJumpTo in interface IDBVirtualList<E extends IDBObj>
      Returns:
      current index
    • getSizeAfterJumpTo

      public int getSizeAfterJumpTo()
      Specified by:
      getSizeAfterJumpTo in interface IDBVirtualList<E extends IDBObj>
    • getCurrentIndex

      public int getCurrentIndex()
      Specified by:
      getCurrentIndex in interface IDBVirtualList<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 interface IDBVirtualList<E extends IDBObj>
      Parameters:
      first - the index of the first entry of the page you want to fetch
    • getPage

      public boolean getPage(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 interface IDBVirtualList<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 interface IDBVirtualList<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 interface IDBVirtualList<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 interface IDBVirtualList<E extends IDBObj>
      Parameters:
      startidx - starting index
      endidx - ending index
      ep - object to call
      Throws:
      EBaseException - failed to process elements
    • getSelectedIndex

      public int getSelectedIndex()
      get the virutal selected index
      Specified by:
      getSelectedIndex in interface IDBVirtualList<E extends IDBObj>
      Returns:
      selected index
    • getFirstIndex

      public int getFirstIndex()
      get the top of the buffer
      Specified by:
      getFirstIndex in interface IDBVirtualList<E extends IDBObj>
      Returns:
      first index