org.apache.directory.ldap.client.api
Class SearchCursorImpl

java.lang.Object
  extended by org.apache.directory.api.ldap.model.cursor.AbstractCursor<Response>
      extended by org.apache.directory.ldap.client.api.SearchCursorImpl
All Implemented Interfaces:
Iterable<Response>, Cursor<Response>, SearchCursor

public class SearchCursorImpl
extends AbstractCursor<Response>
implements SearchCursor

An implementation of Cursor based on the underlying SearchFuture instance. Note: This is a forward only cursor hence the only valid operations are next(), get() and close()

Author:
Apache Directory Project

Constructor Summary
SearchCursorImpl(SearchFuture future, long timeout, TimeUnit timeUnit)
          Instantiates a new search cursor.
 
Method Summary
 void after(Response element)
          This operation is not supported in SearchCursor.
 void afterLast()
          This operation is not supported in SearchCursor.
 boolean available()
          Determines whether or not a call to get() will succeed.
 void before(Response element)
          This operation is not supported in SearchCursor.
 void beforeFirst()
          This operation is not supported in SearchCursor.
 void close()
          Closes this Cursor and frees any resources it my have allocated.
 void close(Exception cause)
          Closes this Cursor and frees any resources it my have allocated.
 boolean first()
          This operation is not supported in SearchCursor.
 Response get()
          Gets the object at the current position.
 Entry getEntry()
          
 IntermediateResponse getIntermediate()
          
 Referral getReferral()
          
 SearchResultDone getSearchResultDone()
          gives the SearchResultDone message received at the end of search results
 boolean isDone()
          
 boolean isEntry()
          
 boolean isIntermediate()
          
 boolean isReferral()
          
 boolean last()
          This operation is not supported in SearchCursor.
 boolean next()
          Advances this Cursor to the next position.
 boolean previous()
          This operation is not supported in SearchCursor.
 
Methods inherited from class org.apache.directory.api.ldap.model.cursor.AbstractCursor
checkNotClosed, isAfterLast, isBeforeFirst, isClosed, isFirst, isLast, iterator, setClosureMonitor, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.directory.api.ldap.model.cursor.Cursor
isAfterLast, isBeforeFirst, isClosed, isFirst, isLast, setClosureMonitor, toString
 
Methods inherited from interface java.lang.Iterable
iterator
 

Constructor Detail

SearchCursorImpl

public SearchCursorImpl(SearchFuture future,
                        long timeout,
                        TimeUnit timeUnit)
Instantiates a new search cursor.

Parameters:
future - the future
timeout - the timeout
timeUnit - the time unit
Method Detail

next

public boolean next()
             throws LdapException,
                    CursorException,
                    IOException
Advances this Cursor to the next position. If called before explicitly positioning this Cursor, the position is presumed to be before the first element and this method moves the cursor forward to the first element.

Specified by:
next in interface Cursor<Response>
Returns:
true if the advance succeeded, false otherwise
Throws:
LdapException - if we have get any LDAP exception while operating the cursor
CursorException - if there are problems advancing to this Cursor to the next position, or if this Cursor is closed
IOException - If we have had any IO Exception

get

public Response get()
             throws InvalidCursorPositionException,
                    IOException
Gets the object at the current position. Cursor implementations may choose to reuse element objects by re-populating them on advances instead of creating new objects on each advance.

Specified by:
get in interface Cursor<Response>
Returns:
the object at the current position
Throws:
IOException - If we have had any IO Exception
InvalidCursorPositionException

getSearchResultDone

public SearchResultDone getSearchResultDone()
gives the SearchResultDone message received at the end of search results

Specified by:
getSearchResultDone in interface SearchCursor
Returns:
the SearchResultDone message, null if the search operation fails for any reason

available

public boolean available()
Determines whether or not a call to get() will succeed.

Specified by:
available in interface Cursor<Response>
Returns:
true if a call to the get() method will succeed, false otherwise

close

public void close()
Closes this Cursor and frees any resources it my have allocated. Repeated calls to this method after this Cursor has already been called should not fail with exceptions.

Specified by:
close in interface Cursor<Response>
Overrides:
close in class AbstractCursor<Response>

close

public void close(Exception cause)
Closes this Cursor and frees any resources it my have allocated. Repeated calls to this method after this Cursor has already been called should not fail with exceptions. The reason argument is the Exception instance thrown instead of the standard CursorClosedException.

Specified by:
close in interface Cursor<Response>
Overrides:
close in class AbstractCursor<Response>
Parameters:
cause - exception thrown when this Cursor is accessed after close

after

public void after(Response element)
           throws LdapException,
                  CursorException,
                  IOException
This operation is not supported in SearchCursor. Prepares this Cursor, so a subsequent call to Cursor#previous() with a true return value, will have positioned the Cursor on a dataSet element equal to or less than the element argument but not greater. A call to Cursor#next() with a true return value will position the Cursor on a dataSet element greater than the argument. If Cursor#next() returns false then the Cursor is past the last element and so all values in the dataSet are less than or equal to the argument. If Cursor#previous() returns false then the Cursor is positioned before the first element and all elements in the dataSet are greater than the argument.

Specified by:
after in interface Cursor<Response>
Parameters:
element - the element to be positioned after
Throws:
LdapException
CursorException
IOException

afterLast

public void afterLast()
               throws LdapException,
                      CursorException,
                      IOException
This operation is not supported in SearchCursor. Positions this Cursor after the last element.

Specified by:
afterLast in interface Cursor<Response>
Throws:
LdapException
CursorException
IOException

before

public void before(Response element)
            throws LdapException,
                   CursorException,
                   IOException
This operation is not supported in SearchCursor. Prepares this Cursor, so a subsequent call to Cursor#next() with a true return value, will have positioned the Cursor on a dataSet element equal to or less than the element argument but not greater. A call to Cursor#previous() with a true return value will position the Cursor on a dataSet element less than the argument. If Cursor#next() returns false then the Cursor is past the last element and so all values in the dataSet are less than the argument. If Cursor#previous() returns false then the Cursor is positioned before the first element and all elements in the dataSet are greater than the argument.

Specified by:
before in interface Cursor<Response>
Parameters:
element - the element to be positioned before
Throws:
LdapException
CursorException
IOException

beforeFirst

public void beforeFirst()
                 throws LdapException,
                        CursorException,
                        IOException
This operation is not supported in SearchCursor. Positions this Cursor before the first element.

Specified by:
beforeFirst in interface Cursor<Response>
Throws:
LdapException
CursorException
IOException

first

public boolean first()
              throws LdapException,
                     CursorException,
                     IOException
This operation is not supported in SearchCursor. Positions this Cursor at the first element.

Specified by:
first in interface Cursor<Response>
Returns:
true if the position has been successfully changed to the first element, false otherwise
Throws:
LdapException
CursorException
IOException

last

public boolean last()
             throws LdapException,
                    CursorException,
                    IOException
This operation is not supported in SearchCursor. Positions this Cursor at the last element.

Specified by:
last in interface Cursor<Response>
Returns:
true if the position has been successfully changed to the last element, false otherwise
Throws:
LdapException
CursorException
IOException

previous

public boolean previous()
                 throws LdapException,
                        CursorException,
                        IOException
This operation is not supported in SearchCursor. Advances this Cursor to the previous position. If called before explicitly positioning this Cursor, the position is presumed to be after the last element and this method moves the cursor back to the last element.

Specified by:
previous in interface Cursor<Response>
Returns:
true if the advance succeeded, false otherwise
Throws:
LdapException
CursorException
IOException

isDone

public boolean isDone()

Specified by:
isDone in interface SearchCursor
Returns:
true if the cursor has processed all the elements we were searching

isReferral

public boolean isReferral()

Specified by:
isReferral in interface SearchCursor
Returns:
true if the next element in the cursor is a referral

getReferral

public Referral getReferral()
                     throws LdapException

Specified by:
getReferral in interface SearchCursor
Returns:
The next referral element, if it's a referral
Throws:
LdapException - If the

isEntry

public boolean isEntry()

Specified by:
isEntry in interface SearchCursor
Returns:
true if the next element in the cursor is an entry

getEntry

public Entry getEntry()
               throws LdapException

Specified by:
getEntry in interface SearchCursor
Returns:
The next entry element, if it's an entry
Throws:
LdapException - If the

isIntermediate

public boolean isIntermediate()

Specified by:
isIntermediate in interface SearchCursor
Returns:
true if the next element in the cursor is an intermediate response

getIntermediate

public IntermediateResponse getIntermediate()
                                     throws LdapException

Specified by:
getIntermediate in interface SearchCursor
Returns:
The next intermediate response element, if it's an intermediate response
Throws:
LdapException - If the


Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.