Build 1.0_r1(from source)

android.database
Class CursorJoiner

java.lang.Object
  extended by android.database.CursorJoiner
All Implemented Interfaces:
Iterable<CursorJoiner.Result>, Iterator<CursorJoiner.Result>

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

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;
     }
 }
 


Nested Class Summary
static class CursorJoiner.Result
          The result of a call to next().
 
Constructor Summary
CursorJoiner(Cursor cursorLeft, String[] columnNamesLeft, Cursor cursorRight, String[] columnNamesRight)
          Initializes the CursorJoiner and resets the cursors to the first row.
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CursorJoiner

public 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 - The left cursor to compare
columnNamesLeft - The column names to compare from the left cursor
cursorRight - The right cursor to compare
columnNamesRight - The column names to compare from the right cursor
Method Detail

iterator

public Iterator<CursorJoiner.Result> iterator()
Description copied from interface: Iterable

Returns an Iterator for the elements in this object.

Specified by:
iterator in interface Iterable<CursorJoiner.Result>
Returns:
An Iterator instance.

hasNext

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

Specified by:
hasNext in interface Iterator<CursorJoiner.Result>
Returns:
true if there are more rows to compare
See Also:
Iterator.next()

next

public 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.

Specified by:
next in interface Iterator<CursorJoiner.Result>
Returns:
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.
See Also:
Iterator.hasNext()

remove

public void remove()
Description copied from interface: Iterator
Removes the last object returned by next from the collection.

Specified by:
remove in interface Iterator<CursorJoiner.Result>

Build 1.0_r1(from source)

Please submit a feedback, bug or feature