Class SimpleJsonReader
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.json.SimpleJsonReader
Reads a JSON stream created by
SimpleJsonWriter.- See Also:
-
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddExceptionProperties(DataException exception) Adds this endpoint's current state to aDataException.protected RecordaddLineage(Record record) Called byDataReader.read()for each record fromDataReader.readImpl()while lineage is saved; the default copiesrecordLineageinto every field along with its original index and name.voidclose()Indicates that this endpoint has finished reading or writing.booleanbooleanIndicates if this reader can capture record and field lineage (false unless overridden by a reader that supports it).booleanIndicates if decimal numbers are read as BigDecimal instead of Double (default is false).booleanReturns whether BigInteger should be used for reading large numeric values.protected RecordreadImpl()Overridden by subclasses to read the next record from thisDataReader.setAutoCloseReader(boolean autoCloseReader) setUseBigDecimal(boolean useBigDecimal) Indicates if decimal numbers are read as BigDecimal instead of Double (default is false).setUseBigInteger(boolean useBigInteger) Sets whether BigInteger should be used for reading large numeric values.Methods inherited from class com.northconcepts.datapipeline.core.DataReader
available, getBufferSize, getNestedEndpoint, getNestedReader, 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, open, 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
-
SimpleJsonReader
-
SimpleJsonReader
-
-
Method Details
-
isUseBigDecimal
public boolean isUseBigDecimal()Indicates if decimal numbers are read as BigDecimal instead of Double (default is false). -
setUseBigDecimal
Indicates if decimal numbers are read as BigDecimal instead of Double (default is false). -
isUseBigInteger
public boolean isUseBigInteger()Returns whether BigInteger should be used for reading large numeric values. When enabled, integer values are read as BigInteger instead of Long to handle values larger than Long.MAX_VALUE.- Returns:
- true if BigInteger is used for numeric values, false otherwise (default is false)
-
setUseBigInteger
Sets whether BigInteger should be used for reading large numeric values. When enabled, integer values are read as BigInteger instead of Long to handle values larger than Long.MAX_VALUE.- Parameters:
useBigInteger- true to use BigInteger, false to use Long (default is false)- Returns:
- this SimpleJsonReader instance for method chaining
-
close
Description copied from class:DataEndpointIndicates that this endpoint has finished reading or writing.- Overrides:
closein classDataEndpoint- 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
-
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
-
addLineage
Description copied from class:DataReaderCalled byDataReader.read()for each record fromDataReader.readImpl()while lineage is saved; the default copiesrecordLineageinto every field along with its original index and name. Overrides set their source details onrecordLineagefirst and end withsuper.addLineage(record).- Overrides:
addLineagein classDataReader
-
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 classDataReader
-
isAutoCloseReader
public boolean isAutoCloseReader() -
setAutoCloseReader
-