Class GmailMessageReader
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.internal.lang.IntegrationReader
com.northconcepts.datapipeline.google.GoogleApiReader
com.northconcepts.datapipeline.google.gmail.GmailMessageReader
Reads Gmail messages, optionally selected by a search query, one record per message with its addresses, headers, flags,
content parts and Gmail metadata such as label and thread IDs.
-
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.google.GoogleApiReader
credentials, JSON_FACTORY, transportFields 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
ConstructorsConstructorDescriptionGmailMessageReader(Credential credentials) Creates a reader with its own HTTP transport, which is shut down on close.GmailMessageReader(Credential credential, HttpTransport httpTransport) Creates a reader that uses the caller's transport, which is not shut down on close. -
Method Summary
Modifier and TypeMethodDescriptionaddExceptionProperties(DataException exception) Adds this endpoint's current state to aDataException.addLabelIds(String... labelIds) intReturns the number of records that can probably be read without blocking.voidclose()Indicates that this endpoint has finished reading or writing.intReturns the number of messages requested per page (defaults to 25).getQuery()Returns the search query used to list messages or null if none was set (the default).booleanvoidopen()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 messages requested per page, fromMIN_BATCH_SIZEtoMAX_BATCH_SIZE(defaults to 25).setIncludeSpamAndTrash(boolean includeSpamAndTrash) Sets the search query used to list messages; null (the default) means no query.Methods inherited from class com.northconcepts.datapipeline.google.GoogleApiReader
getApplicationName, setApplicationName, setJsonFactory, toDate, toExceptionMethods inherited from class com.northconcepts.datapipeline.core.DataReader
addLineage, getBufferSize, getNestedEndpoint, getNestedReader, 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
-
MIN_BATCH_SIZE
public static final int MIN_BATCH_SIZE- See Also:
-
MAX_BATCH_SIZE
public static final int MAX_BATCH_SIZE- See Also:
-
-
Constructor Details
-
GmailMessageReader
public GmailMessageReader(Credential credential, HttpTransport httpTransport) Creates a reader that uses the caller's transport, which is not shut down on close. -
GmailMessageReader
public GmailMessageReader(Credential credentials) Creates a reader with its own HTTP transport, which is shut down on close.
-
-
Method Details
-
getQuery
Returns the search query used to list messages or null if none was set (the default). -
setQuery
Sets the search query used to list messages; null (the default) means no query. -
getBatchSize
public int getBatchSize()Returns the number of messages requested per page (defaults to 25). -
isIncludeSpamAndTrash
public boolean isIncludeSpamAndTrash() -
setIncludeSpamAndTrash
-
getLabelIds
-
addLabelIds
-
setBatchSize
Sets the number of messages requested per page, fromMIN_BATCH_SIZEtoMAX_BATCH_SIZE(defaults to 25). -
open
Description copied from class:DataEndpointMakes this endpoint ready for reading or writing.- Overrides:
openin classIntegrationReader- Throws:
DataException
-
close
Description copied from class:DataEndpointIndicates that this endpoint has finished reading or writing.- Overrides:
closein classGoogleApiReader- Throws:
DataException
-
available
Description copied from class:DataReaderReturns the number of records that can probably be read without blocking.- Overrides:
availablein classDataReader- 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).
- Specified by:
readImplin classDataReader- Throws:
Throwable
- Return
-
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 classGoogleApiReader
-