com.amazon.carbonado.cursor
Class SymmetricDifferenceCursor<S>

java.lang.Object
  extended by com.amazon.carbonado.cursor.AbstractCursor<S>
      extended by com.amazon.carbonado.cursor.SymmetricDifferenceCursor<S>
All Implemented Interfaces:
Cursor<S>

public class SymmetricDifferenceCursor<S>
extends AbstractCursor<S>

Wraps two Cursors and performs a symmetric set difference operation. In boolean logic, this is an exclusive or operation.

Both cursors must return results in the same order. Ordering is preserved by the difference.

Author:
Brian S O'Neill
See Also:
UnionCursor, IntersectionCursor, DifferenceCursor

Constructor Summary
SymmetricDifferenceCursor(Cursor<S> left, Cursor<S> right, Comparator<S> order)
           
 
Method Summary
 void close()
          Call close to release any resources being held by this cursor.
 int compareNext()
          Returns 0 if no next element available, <0 if next element is from left source cursor, and >0 if next element is from right source cursor.
 boolean hasNext()
          Returns true if this cursor has more elements.
 S next()
          Returns the next element from this cursor.
 
Methods inherited from class com.amazon.carbonado.cursor.AbstractCursor
copyInto, copyInto, skipNext, toList, toList
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SymmetricDifferenceCursor

public SymmetricDifferenceCursor(Cursor<S> left,
                                 Cursor<S> right,
                                 Comparator<S> order)
Parameters:
left - cursor to wrap
right - cursor to wrap
order - describes sort ordering of wrapped cursors, which must be a total ordering
Method Detail

close

public void close()
           throws FetchException
Description copied from interface: Cursor
Call close to release any resources being held by this cursor. Further operations on this cursor will behave as if there are no results.

Throws:
FetchException

hasNext

public boolean hasNext()
                throws FetchException
Description copied from interface: Cursor
Returns true if this cursor has more elements. In other words, returns true if next would return an element rather than throwing an exception.

Throws:
FetchException - if storage layer throws an exception

compareNext

public int compareNext()
                throws FetchException
Returns 0 if no next element available, <0 if next element is from left source cursor, and >0 if next element is from right source cursor.

Throws:
FetchException

next

public S next()
       throws FetchException
Description copied from interface: Cursor
Returns the next element from this cursor. This method may be called repeatedly to iterate through the results.

Throws:
FetchException - if storage layer throws an exception


Copyright © 2006-2009 Amazon Technologies, Inc.. All Rights Reserved.