public class ProxyReader extends DataReader
DataReader
,
possibly transforming them along the way. The only method that a subclass
should implement is interceptRecord(Record)
.DataEndpoint.State
fieldLineage, recordLineage
lastRecord, PRODUCT, PRODUCT_VERSION, VENDOR, XML_INPUT_FACTORY_KEY
BUFFER_SIZE, captureElapsedTime, DEFAULT_READ_BUFFER_SIZE
id, log, name, TIMESTAMP_FORMAT
Constructor and Description |
---|
ProxyReader(DataReader nestedDataReader) |
Modifier and Type | Method and Description |
---|---|
DataException |
addExceptionProperties(DataException exception)
Adds this endpoint's current state to a
DataException . |
int |
available()
Returns the number of records that can probably be read without blocking.
|
void |
close()
Indicates that this endpoint has finished reading or writing.
|
DataReader |
getNestedReader()
Returns the
DataReader held inside this one or null if there isn't one. |
protected Record |
interceptRecord(Record record) |
static ProxyReader |
map(DataReader reader,
BiFunction<ProxyReader,Record,Record> mapper) |
static ProxyReader |
map(DataReader reader,
Function<Record,Record> mapper) |
void |
open()
Makes this endpoint ready for reading or writing.
|
protected Record |
readImpl()
Overridden by subclasses to read the next record from this
DataReader . |
protected void |
setNestedDataReader(DataReader nestedDataReader)
Make sure to close old target and open the new one or call
#setTargetDataReader(DataReader, boolean) with true . |
protected void |
setNestedDataReader(DataReader nestedDataReader,
boolean manageLifecycle) |
addLineage, getBufferSize, getNestedEndpoint, getRootEndpoint, getRootReader, isExhausted, isLineageSupported, isSaveLineage, peek, pop, push, read, setSaveLineage, skip
decrementRecordCount, enableJmx, getLastRecord, getRecordCount, getRecordCountAsBigInteger, getRecordCountAsString, incrementRecordCount, isRecordCountBigInteger, resetRecordCount, toString
addElapsedtime, assertClosed, assertNotOpened, assertOpened, finalize, getClosedOn, getDescription, getElapsedTime, getElapsedTimeAsString, getOpenedOn, getOpenElapsedTime, getOpenElapsedTimeAsString, getSelfTime, getSelfTimeAsString, getState, isCaptureElapsedTime, isClosed, isOpen, setCaptureElapsedTime, setDescription
public ProxyReader(DataReader nestedDataReader)
public static ProxyReader map(DataReader reader, Function<Record,Record> mapper) throws Throwable
Throwable
public static ProxyReader map(DataReader reader, BiFunction<ProxyReader,Record,Record> mapper) throws Throwable
Throwable
public DataReader getNestedReader()
DataReader
DataReader
held inside this one or null
if there isn't one.getNestedReader
in class DataReader
protected void setNestedDataReader(DataReader nestedDataReader)
#setTargetDataReader(DataReader, boolean)
with true
.protected void setNestedDataReader(DataReader nestedDataReader, boolean manageLifecycle) throws DataException
DataException
public int available() throws DataException
DataReader
available
in class DataReader
DataException
public void open() throws DataException
DataEndpoint
open
in class DataEndpoint
DataException
public void close() throws DataException
DataEndpoint
close
in class DataEndpoint
DataException
protected Record readImpl() throws Throwable
DataReader
DataReader
. The default
implementation of DataReader.read()
now insures that this method will not be called again after it returns
a null
.
If no record is available, null
will be returned.
readImpl
in class DataReader
Throwable
public DataException addExceptionProperties(DataException exception)
Endpoint
DataException
. Since this method is called whenever an
exception is thrown, subclasses should override it to add their specific information.addExceptionProperties
in class DataReader
Copyright (c) 2006-2024 North Concepts Inc. All Rights Reserved.