Skip to content

Most visited

Recently visited

navigation
Added in API level 1

CursorJoiner

public final class CursorJoiner
extends Object implements Iterator<CursorJoiner.Result>, Iterable<CursorJoiner.Result>

java.lang.Object
   ↳ android.database.CursorJoiner


Does a join on two cursors using the specified columns. The cursors must already be sorted on each of the specified columns in ascending order. This joiner only supports the case where the tuple of key column values is unique.

Typical usage:

 CursorJoiner joiner = new CursorJoiner(cursorA, keyColumnsofA, cursorB, keyColumnsofB);
 for (CursorJointer.Result joinerResult : joiner) {
     switch (joinerResult) {
         case LEFT:
             // handle case where a row in cursorA is unique
             break;
         case RIGHT:
             // handle case where a row in cursorB is unique
             break;
         case BOTH:
             // handle case where a row with the same key is in both cursors
             break;
     }
 }
 

Summary

Nested classes

enum CursorJoiner.Result

The result of a call to next(). 

Public constructors

CursorJoiner(Cursor cursorLeft, String[] columnNamesLeft, Cursor cursorRight, String[] columnNamesRight)

Initializes the CursorJoiner and resets the cursors to the first row.

Public methods

boolean hasNext()

Returns whether or not there are more rows to compare using next().

Iterator<CursorJoiner.Result> iterator()

Returns an Iterator for the elements in this object.

CursorJoiner.Result next()

Returns the comparison result of the next row from each cursor.

void remove()

Removes the last object returned by next from the collection.

Inherited methods

From class java.lang.Object
From interface java.util.Iterator
From interface java.lang.Iterable

Public constructors

CursorJoiner

Added in API level 1
CursorJoiner (Cursor cursorLeft, 
                String[] columnNamesLeft, 
                Cursor cursorRight, 
                String[] columnNamesRight)

Initializes the CursorJoiner and resets the cursors to the first row. The left and right column name arrays must have the same number of columns.

Parameters
cursorLeft Cursor: The left cursor to compare
columnNamesLeft String: The column names to compare from the left cursor
cursorRight Cursor: The right cursor to compare
columnNamesRight String: The column names to compare from the right cursor

Public methods

hasNext

Added in API level 1
boolean hasNext ()

Returns whether or not there are more rows to compare using next().

Returns
boolean true if there are more rows to compare

iterator

Added in API level 1
Iterator<CursorJoiner.Result> iterator ()

Returns an Iterator for the elements in this object.

Returns
Iterator<CursorJoiner.Result> An Iterator instance.

next

Added in API level 1
CursorJoiner.Result next ()

Returns the comparison result of the next row from each cursor. If one cursor has no more rows but the other does then subsequent calls to this will indicate that the remaining rows are unique.

The caller must check that hasNext() returns true before calling this.

Once next() has been called the cursors specified in the result of the call to next() are guaranteed to point to the row that was indicated. Reading values from the cursor that was not indicated in the call to next() will result in undefined behavior.

Returns
CursorJoiner.Result LEFT, if the row pointed to by the left cursor is unique, RIGHT if the row pointed to by the right cursor is unique, BOTH if the rows in both cursors are the same.

remove

Added in API level 1
void remove ()

Removes the last object returned by next from the collection. This method can only be called once between each call to next.

This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.