public class RemoveDuplicatesReader extends ProxyReader
RemoveDuplicatesReader(DataReader)
) or subset
of fields (RemoveDuplicatesReader(DataReader, FieldList)
).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 |
---|
RemoveDuplicatesReader(DataReader targetDataReader)
Remove duplicate records matching all fields.
|
RemoveDuplicatesReader(DataReader targetDataReader,
FieldList fields)
Removes duplicate records based on the matching
FieldList . |
RemoveDuplicatesReader(DataReader targetDataReader,
String... fields)
Remove duplicate records based on their field names.
|
Modifier and Type | Method and Description |
---|---|
DataException |
addExceptionProperties(DataException exception)
Adds this endpoint's current state to a
DataException . |
void |
close()
Indicates that this endpoint has finished reading or writing.
|
DataWriter |
getDiscardWriter()
Returns the discard sink for discarded records or
null if one was not assigned. |
protected Record |
interceptRecord(Record record) |
protected void |
onDuplicate(Record record)
Called for each duplicate record.
|
protected void |
onUnique(Record record)
Called for each unique record.
|
void |
open()
Makes this endpoint ready for reading or writing.
|
RemoveDuplicatesReader |
setDiscardWriter(DataWriter writer)
Assign a discard sink for duplicate records.
|
available, getNestedReader, map, map, readImpl, setNestedDataReader, setNestedDataReader
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 RemoveDuplicatesReader(DataReader targetDataReader, FieldList fields)
FieldList
.targetDataReader
- source DataReader
fields
- the FieldList
to be matchpublic RemoveDuplicatesReader(DataReader targetDataReader, String... fields)
targetDataReader
- source DataReader
fields
- the field names to be checked for duplicatespublic RemoveDuplicatesReader(DataReader targetDataReader)
targetDataReader
- source DataReader
public DataWriter getDiscardWriter()
null
if one was not assigned.public RemoveDuplicatesReader setDiscardWriter(DataWriter writer)
writer
- the discard sinkpublic void open() throws DataException
DataEndpoint
open
in class ProxyReader
DataException
public void close() throws DataException
DataEndpoint
close
in class ProxyReader
DataException
protected Record interceptRecord(Record record) throws Throwable
interceptRecord
in class ProxyReader
Throwable
protected void onUnique(Record record)
protected void onDuplicate(Record record)
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 ProxyReader
Copyright (c) 2006-2023 North Concepts Inc. All Rights Reserved.