Class DataMappingReader
java.lang.Object
com.northconcepts.datapipeline.core.DataObject
com.northconcepts.datapipeline.core.Endpoint
com.northconcepts.datapipeline.core.DataEndpoint
com.northconcepts.datapipeline.core.DataReader
com.northconcepts.datapipeline.core.ProxyReader
com.northconcepts.datapipeline.internal.lang.IntegrationProxyReader
com.northconcepts.datapipeline.foundations.datamapping.DataMappingReader
Maps each record read from a nested reader with a
DataMapping and returns the target record instead; records
failing a mapping condition are skipped.-
Nested Class Summary
Nested classes/interfaces inherited from class com.northconcepts.datapipeline.core.DataEndpoint
DataEndpoint.State -
Field Summary
Fields inherited from class com.northconcepts.datapipeline.core.DataReader
fieldLineage, recordLineageFields inherited from class com.northconcepts.datapipeline.core.DataEndpoint
lastRecord, PRODUCT, PRODUCT_VERSION, VENDOR, XML_INPUT_FACTORY_KEYFields inherited from class com.northconcepts.datapipeline.core.Endpoint
BUFFER_SIZE, captureElapsedTime, DEFAULT_READ_BUFFER_SIZEFields inherited from class com.northconcepts.datapipeline.core.DataObject
id, log, name, TIMESTAMP_FORMAT -
Constructor Summary
ConstructorsConstructorDescriptionDataMappingReader(DataReader nestedDataReader, DataMapping dataMapping) Creates a reader that throws an exception for the first record whose mapping throws or fails validation; records failing a mapping condition are skipped.DataMappingReader(DataReader nestedDataReader, DataMapping dataMapping, DataWriter discardWriter, String discardReasonFieldName) Creates a reader that sends records whose mapping throws or fails validation todiscardWriter(throwing instead if it is null), with the reason in thediscardReasonFieldNamefield when that is not null. -
Method Summary
Modifier and TypeMethodDescriptionaddExceptionProperties(DataException exception) Adds this endpoint's current state to aDataException.voidclose()Indicates that this endpoint has finished reading or writing.RecordExpressionContextprotected RecordinterceptRecord(Record record) Overridden by subclasses to transform, drop, or observe a record on its way through this proxy.booleanIndicates if this reader can capture record and field lineage (false unless overridden by a reader that supports it).booleanIndicates if records skipped by a failed mapping condition are also written to the discard writer (default false).protected RecordonFailure(Record record, DataException exception, DataMappingResult result) Handles a record whose mapping threw exceptions or failed validation: writes it to the discard writer and returns null to skip it, or throwsexceptionif there is no discard writer.voidopen()Makes this endpoint ready for reading or writing.setSendSkippedToDiscardWriter(boolean sendSkippedToDiscardWriter) Indicates if records skipped by a failed mapping condition are also written to the discard writer (default false).Methods inherited from class com.northconcepts.datapipeline.core.ProxyReader
available, getNestedReader, map, map, readImpl, setNestedDataReader, setNestedDataReaderMethods inherited from class com.northconcepts.datapipeline.core.DataReader
addLineage, getBufferSize, getNestedEndpoint, getReader, getRootEndpoint, getRootReader, isExhausted, isSaveLineage, peek, pop, push, read, setSaveLineage, skipMethods inherited from class com.northconcepts.datapipeline.core.DataEndpoint
decrementRecordCount, enableJmx, getLastRecord, getRecordCount, getRecordCountAsBigInteger, getRecordCountAsString, incrementRecordCount, isRecordCountBigInteger, resetRecordCount, toStringMethods inherited from class com.northconcepts.datapipeline.core.Endpoint
addElapsedtime, assertClosed, assertNotOpened, assertOpened, finalize, getClosedOn, getDescription, getElapsedTime, getElapsedTimeAsString, getOpenedOn, getOpenElapsedTime, getOpenElapsedTimeAsString, getSelfTime, getSelfTimeAsString, getState, isCaptureElapsedTime, isClosed, isOpen, setCaptureElapsedTime, setDescription
-
Constructor Details
-
DataMappingReader
public DataMappingReader(DataReader nestedDataReader, DataMapping dataMapping, DataWriter discardWriter, String discardReasonFieldName) Creates a reader that sends records whose mapping throws or fails validation todiscardWriter(throwing instead if it is null), with the reason in thediscardReasonFieldNamefield when that is not null. Records failing a mapping condition are only skipped unlesssetSendSkippedToDiscardWriter(boolean)is enabled. -
DataMappingReader
Creates a reader that throws an exception for the first record whose mapping throws or fails validation; records failing a mapping condition are skipped.
-
-
Method Details
-
getExpressionContext
public RecordExpressionContext getExpressionContext() -
getDataMapping
-
open
Description copied from class:DataEndpointMakes this endpoint ready for reading or writing.- Overrides:
openin classIntegrationProxyReader- Throws:
DataException
-
close
Description copied from class:DataEndpointIndicates that this endpoint has finished reading or writing.- Overrides:
closein classProxyReader- Throws:
DataException
-
isLineageSupported
public boolean isLineageSupported()Description copied from class:DataReaderIndicates if this reader can capture record and field lineage (false unless overridden by a reader that supports it).- Overrides:
isLineageSupportedin classDataReader
-
interceptRecord
Description copied from class:ProxyReaderOverridden by subclasses to transform, drop, or observe a record on its way through this proxy.Contract for subclasses (see also
docs/authoring/ProxyReader.md):- Return the record (possibly modified) to pass it downstream.
- Return
nullto drop the record; the framework reads the next one. - Throw to fail the pipeline; the framework wraps the throwable in a
DataExceptionwith.setRecord(record). - The nested
DataReaderis opened and closed for you; do not read from it here. - Do not call
DataEndpoint.incrementRecordCount()here.
- Overrides:
interceptRecordin classProxyReader- Throws:
Throwable
-
onFailure
Handles a record whose mapping threw exceptions or failed validation: writes it to the discard writer and returns null to skip it, or throwsexceptionif there is no discard writer. Overrides may return a record to pass on. -
addExceptionProperties
Description copied from class:EndpointAdds this endpoint's current state to aDataException. Since this method is called whenever an exception is thrown, subclasses should override it to add their specific information.- Overrides:
addExceptionPropertiesin classProxyReader
-
isSendSkippedToDiscardWriter
public boolean isSendSkippedToDiscardWriter()Indicates if records skipped by a failed mapping condition are also written to the discard writer (default false). -
setSendSkippedToDiscardWriter
Indicates if records skipped by a failed mapping condition are also written to the discard writer (default false).
-