Copyright © 2008-2011 Ralph Schuster. All Rights Reserved.

csv.impl
Class AbstractRowFilter

java.lang.Object
  extended by csv.impl.AbstractRowFilter
All Implemented Interfaces:
TableReader, java.util.Iterator<java.lang.Object[]>
Direct Known Subclasses:
IndexRowFilter

public abstract class AbstractRowFilter
extends java.lang.Object
implements TableReader

Filters rows from underlying table reader. This is an abstract implementation only that eases filtering.

Author:
ralph

Constructor Summary
AbstractRowFilter(TableReader reader)
          Constructor.
 
Method Summary
 void close()
          Forwarded to underlying reader.
protected  void findNextRow()
          Read from underlying reader until there is a row not filtered away.
 java.lang.Object get(java.lang.String name, java.lang.Object[] row)
          Forwarded to underlying reader.
 int getColumnIndex(java.lang.String name)
          Forwarded to underlying reader.
 java.lang.Object[] getHeaderRow()
          Forwarded to underlying reader.
 int getMinimumColumnCount()
          Forwarded to underlying reader.
protected  int getRawRowIndex()
          Returns the row index from the underlying reader (raw row index)
protected  TableReader getReader()
          Returns the underlying reader.
protected  int getRowIndex()
          Returns the index of current row (delivered rows only)
 boolean hasHeaderRow()
          Forwarded to underlying reader.
 boolean hasNext()
          Checks whether there is another row to be delivered that is not filtered.
protected  boolean isMoreRowsExpected()
          Tells whether more rows will be expected after current row.
protected abstract  boolean isValidRow(java.lang.Object[] row)
          Tells whether the row can be delivered or will be filtered away.
 java.lang.Object[] next()
          Delivers next row.
 void open()
          Opens this reader.
 void registerCommentCallBack(CommentCallback callback)
          Forwarded to underlying reader.
 void remove()
          Forwarded to underlying reader.
 void reset()
          Resets the reader.
 void setHasHeaderRow(boolean hasHeaderRow)
          Forwarded to underlying reader.
 void setMinimumColumnCount(int length)
          Forwarded to underlying reader.
 void unregisterCommentCallBack(CommentCallback callback)
          Forwarded to underlying reader.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractRowFilter

public AbstractRowFilter(TableReader reader)
Constructor.

Method Detail

getReader

protected TableReader getReader()
Returns the underlying reader.

Returns:
the reader

close

public void close()
Forwarded to underlying reader.

Specified by:
close in interface TableReader
See Also:
TableReader.close()

get

public java.lang.Object get(java.lang.String name,
                            java.lang.Object[] row)
Forwarded to underlying reader.

Specified by:
get in interface TableReader
Parameters:
name - name of column (from header row)
row - row of values
Returns:
value in row for specified column.
See Also:
TableReader.get(java.lang.String, java.lang.Object[])

getColumnIndex

public int getColumnIndex(java.lang.String name)
Forwarded to underlying reader.

Specified by:
getColumnIndex in interface TableReader
Parameters:
name - name of column
Returns:
index of column or -1 if it does not exist.
See Also:
TableReader.getColumnIndex(java.lang.String)

getHeaderRow

public java.lang.Object[] getHeaderRow()
Forwarded to underlying reader.

Specified by:
getHeaderRow in interface TableReader
Returns:
header row if such was defined.
See Also:
TableReader.getHeaderRow()

getMinimumColumnCount

public int getMinimumColumnCount()
Forwarded to underlying reader.

Specified by:
getMinimumColumnCount in interface TableReader
Returns:
length number of columns
See Also:
TableReader.getMinimumColumnCount()

hasHeaderRow

public boolean hasHeaderRow()
Forwarded to underlying reader.

Specified by:
hasHeaderRow in interface TableReader
Returns:
true if there is a header row.
See Also:
TableReader.hasHeaderRow()

open

public void open()
Opens this reader.

Specified by:
open in interface TableReader
See Also:
TableReader.open()

registerCommentCallBack

public void registerCommentCallBack(CommentCallback callback)
Forwarded to underlying reader.

Specified by:
registerCommentCallBack in interface TableReader
Parameters:
callback - callback to be registered
See Also:
TableReader.registerCommentCallBack(csv.CommentCallback)

reset

public void reset()
Resets the reader.

Specified by:
reset in interface TableReader
See Also:
TableReader.reset()

setHasHeaderRow

public void setHasHeaderRow(boolean hasHeaderRow)
Forwarded to underlying reader.

Specified by:
setHasHeaderRow in interface TableReader
Parameters:
hasHeaderRow - true if there is a header row.
See Also:
TableReader.setHasHeaderRow(boolean)

setMinimumColumnCount

public void setMinimumColumnCount(int length)
Forwarded to underlying reader.

Specified by:
setMinimumColumnCount in interface TableReader
Parameters:
length - number of columns
See Also:
TableReader.setMinimumColumnCount(int)

unregisterCommentCallBack

public void unregisterCommentCallBack(CommentCallback callback)
Forwarded to underlying reader.

Specified by:
unregisterCommentCallBack in interface TableReader
Parameters:
callback - callback to be unregistered
See Also:
TableReader.unregisterCommentCallBack(csv.CommentCallback)

hasNext

public boolean hasNext()
Checks whether there is another row to be delivered that is not filtered.

Specified by:
hasNext in interface java.util.Iterator<java.lang.Object[]>
See Also:
Iterator.hasNext()

findNextRow

protected void findNextRow()
Read from underlying reader until there is a row not filtered away.


isValidRow

protected abstract boolean isValidRow(java.lang.Object[] row)
Tells whether the row can be delivered or will be filtered away.

Parameters:
row - row to be checked
Returns:
whether row is a valid row
See Also:
getRawRowIndex(), getRowIndex()

isMoreRowsExpected

protected boolean isMoreRowsExpected()
Tells whether more rows will be expected after current row. This method always returns true so all rows from underlying reader will be checked. However, you should override this method if you want to avoid checking more rows because you already know that no row will match your criteria anymore.

Returns:
true if another valid row can be expected

getRawRowIndex

protected int getRawRowIndex()
Returns the row index from the underlying reader (raw row index)

Returns:
the rawRowIndex

getRowIndex

protected int getRowIndex()
Returns the index of current row (delivered rows only)

Returns:
the rowIndex

next

public java.lang.Object[] next()
Delivers next row.

Specified by:
next in interface java.util.Iterator<java.lang.Object[]>
See Also:
Iterator.next()

remove

public void remove()
Forwarded to underlying reader.

Specified by:
remove in interface java.util.Iterator<java.lang.Object[]>
See Also:
Iterator.remove()

Copyright © 2008-2011 Ralph Schuster. All Rights Reserved.

Copyright © 2008-2011 Ralph Schuster. All Rights Reserved.