Class BatchedJsonArraySplitter
- java.lang.Object
-
- com.adaptris.core.services.splitter.MessageSplitterImp
-
- com.adaptris.core.services.splitter.json.LargeJsonArraySplitter
-
- com.adaptris.core.services.splitter.json.BatchedJsonArraySplitter
-
- All Implemented Interfaces:
MessageSplitter
@ComponentProfile(summary="Split a JSON Array into a smaller subset of arrays", tag="json,splitting") public class BatchedJsonArraySplitter extends LargeJsonArraySplitter
Split an arbitrarily large JSON array into smaller batches.This is a extension to
LargeJsonArraySplitter
; each resulting message is still a JSON array, it just contains slightly fewer elements than the original message.For instance given the following JSON Array;
[ {"colour": "red","value": "#f00"}, {"colour": "green","value": "#0f0"}, {"colour": "blue","value": "#00f"}, {"colour": "black","value": "#000"} ]
2
then we would expect to split messages; each a JSON array containing two elements. e.g. :[{ "colour": "red", "value": "#f00" }, { "colour": "green", "value": "#0f0"}]
and[{ "colour": "blue","value": "#00f"}, { "colour": "black", "value": "#000"}]
In the adapter configuration file this class is aliased as batched-json-array-splitter which is the preferred alternative to the fully qualified classname when building your configuration.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.adaptris.core.services.splitter.json.LargeJsonArraySplitter
LargeJsonArraySplitter.GeneratorConfig, LargeJsonArraySplitter.JsonSplitGenerator
-
Nested classes/interfaces inherited from class com.adaptris.core.services.splitter.MessageSplitterImp
MessageSplitterImp.SplitMessageIterator
-
-
Field Summary
-
Fields inherited from class com.adaptris.core.services.splitter.MessageSplitterImp
logR
-
-
Constructor Summary
Constructors Constructor Description BatchedJsonArraySplitter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected LargeJsonArraySplitter.JsonSplitGenerator
createSplitter(LargeJsonArraySplitter.GeneratorConfig cfg)
java.lang.Integer
getBatchSize()
void
setBatchSize(java.lang.Integer batchSize)
Set the batch size.BatchedJsonArraySplitter
withBatchSize(java.lang.Integer i)
BatchedJsonArraySplitter
withBufferSize(java.lang.Integer i)
BatchedJsonArraySplitter
withMessageFactory(AdaptrisMessageFactory fac)
-
Methods inherited from class com.adaptris.core.services.splitter.json.LargeJsonArraySplitter
getBufferSize, setBufferSize, splitMessage
-
Methods inherited from class com.adaptris.core.services.splitter.MessageSplitterImp
copyMetadata, getCopyMetadata, getCopyObjectMetadata, getMessageFactory, selectFactory, setCopyMetadata, setCopyObjectMetadata, setMessageFactory
-
-
-
-
Method Detail
-
withBufferSize
public BatchedJsonArraySplitter withBufferSize(java.lang.Integer i)
- Overrides:
withBufferSize
in classLargeJsonArraySplitter
-
withMessageFactory
public BatchedJsonArraySplitter withMessageFactory(AdaptrisMessageFactory fac)
- Overrides:
withMessageFactory
in classLargeJsonArraySplitter
-
getBatchSize
public java.lang.Integer getBatchSize()
-
setBatchSize
public void setBatchSize(java.lang.Integer batchSize)
Set the batch size.- Parameters:
batchSize
- the size, default is 10 if not specified.
-
withBatchSize
public BatchedJsonArraySplitter withBatchSize(java.lang.Integer i)
-
createSplitter
protected LargeJsonArraySplitter.JsonSplitGenerator createSplitter(LargeJsonArraySplitter.GeneratorConfig cfg)
- Overrides:
createSplitter
in classLargeJsonArraySplitter
-
-