Class TwitterUserLookupReader
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.twitter.TwitterProxyReader
com.northconcepts.datapipeline.twitter.TwitterUserLookupReader
Adds Twitter user details to records from a nested reader by looking up the user ID or screen name in a source field.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.northconcepts.datapipeline.core.DataEndpoint
DataEndpoint.State -
Field Summary
FieldsFields inherited from class com.northconcepts.datapipeline.twitter.TwitterProxyReader
EOFFields 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
ConstructorsConstructorDescriptionTwitterUserLookupReader(TwitterProvider provider, DataReader nestedDataReader, String sourceIdFieldName) Creates a reader that looks up users by the ID or screen name at thesourceIdFieldNamefield path.TwitterUserLookupReader(String consumerKey, String consumerSecret, DataReader nestedDataReader, String sourceIdFieldName) Creates a reader that looks up users by the ID or screen name at thesourceIdFieldNamefield path.TwitterUserLookupReader(String consumerKey, String consumerSecret, String accessToken, String accessTokenSecret, DataReader nestedDataReader, String sourceIdFieldName) Creates a reader that looks up users by the ID or screen name at thesourceIdFieldNamefield path. -
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.intReturns the number of records looked up per API request (default is 100).Returns the discard sink for records where the lookup failed ornullif one was not assigned.booleanIndicates if users are looked up by ID (the default); the source field must then holdLongvalues.booleanIndicates if users are looked up by the screen name in the source field instead of by ID (default is false).booleanIndicates if records failing the lookup should be returned — instead of being deleted (default isfalse).protected voidonUserFound(Long userId, String screenName, Record record) Called for each user found.protected voidonUserNotFound(Long userId, String screenName, Record record) Called for each user not found.voidopen()Makes this endpoint ready for reading or writing.protected RecordreadImpl()Overridden by subclasses to read the next record from thisDataReader.setBatchSize(int batchSize) Sets the number of records looked up per API request, from 1 toMAX_BATCH_SIZE(default is 100).setDiscardWriter(DataWriter writer) Assign a discard sink for records where the lookup failed.setLookupByScreenName(boolean lookupByScreenName) Indicates if users are looked up by the screen name in the source field instead of by ID (default is false).setReturnOrphans(boolean returnOrphans) Indicates if records failing the lookup should be returned — instead of being deleted (default isfalse).Methods inherited from class com.northconcepts.datapipeline.twitter.TwitterProxyReader
getApiLimitPolicy, getConverter, getEntityExpansionPolicy, getProvider, getRateLimit, getRateLimit, isRateLimitExceeded, onRateLimitExceeded, reloadRateLimit, setApiLimitPolicy, setConverter, setEntityExpansionPolicy, setRateLimit, setRateLimit, setRateLimitExceededMethods inherited from class com.northconcepts.datapipeline.core.ProxyReader
available, getNestedReader, interceptRecord, map, map, setNestedDataReader, setNestedDataReaderMethods inherited from class com.northconcepts.datapipeline.core.DataReader
addLineage, getBufferSize, getNestedEndpoint, getReader, getRootEndpoint, getRootReader, isExhausted, isLineageSupported, 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
-
Field Details
-
MAX_BATCH_SIZE
public static final int MAX_BATCH_SIZE- See Also:
-
-
Constructor Details
-
TwitterUserLookupReader
public TwitterUserLookupReader(String consumerKey, String consumerSecret, DataReader nestedDataReader, String sourceIdFieldName) Creates a reader that looks up users by the ID or screen name at thesourceIdFieldNamefield path. -
TwitterUserLookupReader
public TwitterUserLookupReader(String consumerKey, String consumerSecret, String accessToken, String accessTokenSecret, DataReader nestedDataReader, String sourceIdFieldName) Creates a reader that looks up users by the ID or screen name at thesourceIdFieldNamefield path. -
TwitterUserLookupReader
public TwitterUserLookupReader(TwitterProvider provider, DataReader nestedDataReader, String sourceIdFieldName) Creates a reader that looks up users by the ID or screen name at thesourceIdFieldNamefield path.
-
-
Method Details
-
isLookupByScreenName
public boolean isLookupByScreenName()Indicates if users are looked up by the screen name in the source field instead of by ID (default is false). -
isLookupById
public boolean isLookupById()Indicates if users are looked up by ID (the default); the source field must then holdLongvalues. -
setLookupByScreenName
Indicates if users are looked up by the screen name in the source field instead of by ID (default is false). -
getDiscardWriter
Returns the discard sink for records where the lookup failed ornullif one was not assigned. -
setDiscardWriter
Assign a discard sink for records where the lookup failed.- Parameters:
writer- the discard sink
-
isReturnOrphans
public boolean isReturnOrphans()Indicates if records failing the lookup should be returned — instead of being deleted (default isfalse). -
setReturnOrphans
Indicates if records failing the lookup should be returned — instead of being deleted (default isfalse). -
getBatchSize
public int getBatchSize()Returns the number of records looked up per API request (default is 100). -
setBatchSize
Sets the number of records looked up per API request, from 1 toMAX_BATCH_SIZE(default is 100). -
open
Description copied from class:DataEndpointMakes this endpoint ready for reading or writing.- Overrides:
openin classTwitterProxyReader- Throws:
DataException
-
close
Description copied from class:DataEndpointIndicates that this endpoint has finished reading or writing.- Overrides:
closein classProxyReader- Throws:
DataException
-
readImpl
Description copied from class:DataReaderOverridden by subclasses to read the next record from thisDataReader. The default implementation ofDataReader.read()now insures that this method will not be called again after it returns anull.If no record is available,
nullwill be returned.Contract for subclasses (see also
docs/authoring/DataReader.md):- Return
nullexactly once to signal end-of-stream. - Do not call this method directly —
DataReader.read()is the template method that wraps exceptions, increments the record count, and tracks lineage. - Do not call
DataEndpoint.incrementRecordCount()here;DataReader.read()already does. - Throw raw exceptions;
DataReader.read()wraps them viaexception(throwable).
- Overrides:
readImplin classProxyReader- Throws:
Throwable
- Return
-
onUserFound
Called for each user found.- Parameters:
userId-
-
onUserNotFound
Called for each user not found. -
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 classTwitterProxyReader
-