Package org.vast.swe.fast
Class JsonDataWriterGson
java.lang.Object
org.vast.swe.fast.DataBlockProcessor
org.vast.swe.fast.AbstractDataWriter
org.vast.swe.fast.JsonDataWriterGson
- All Implemented Interfaces:
DataComponentVisitor
,DataStreamWriter
- Direct Known Subclasses:
JsonArrayDataWriterGson
New implementation of JSON data writer with better efficiency since the write tree is pre-computed during init instead of being re-evaluated while iterating through the component tree.
This particular implementation is based on Gson JsonWriter.
- Since:
- Jan 26, 2021
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
protected class
protected class
protected class
protected class
protected class
protected class
protected class
protected static interface
protected class
protected class
protected class
protected class
protected class
Nested classes/interfaces inherited from class org.vast.swe.fast.DataBlockProcessor
DataBlockProcessor.ArrayProcessor, DataBlockProcessor.ArraySizeSupplier, DataBlockProcessor.AtomProcessor, DataBlockProcessor.BaseProcessor, DataBlockProcessor.ChoiceProcessor, DataBlockProcessor.CompositeProcessor, DataBlockProcessor.ImplicitSizeProcessor, DataBlockProcessor.RecordProcessor
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Map<String,
JsonDataWriterGson.IntegerWriter> protected boolean
protected com.google.gson.stream.JsonWriter
Fields inherited from class org.vast.swe.fast.AbstractDataWriter
dataEncoding, lastArrayElt, parentArray
Fields inherited from class org.vast.swe.fast.DataBlockProcessor
dataComponents, enableSubTree, filter, hasVarSizeArray, processorStack, processorTreeReady, rootProcessor
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
void
void
flush()
protected DataBlockProcessor.ArrayProcessor
getArrayProcessor
(DataArray array) protected DataBlockProcessor.ArraySizeSupplier
getArraySizeSupplier
(String refId) protected DataBlockProcessor.ChoiceProcessor
getChoiceProcessor
(DataChoice choice) protected DataBlockProcessor.ImplicitSizeProcessor
protected DataBlockProcessor.AtomProcessor
getRangeProcessor
(RangeComponent range) protected DataBlockProcessor.RecordProcessor
getRecordProcessor
(DataRecord record) protected DataBlockProcessor.RecordProcessor
getVectorProcessor
(Vector vect) protected void
init()
void
reset()
void
void
startStream
(boolean addWrapper) void
void
void
void
visit
(GeometryData geom) void
void
void
protected void
writeInline
(boolean writeInline) Methods inherited from class org.vast.swe.fast.AbstractDataWriter
getDataEncoding, getDataHandler, getErrorHandler, getRawDataHandler, setDataEncoding, setDataHandler, setErrorHandler, setParentArray, setRawDataHandler, stop, write, write
Methods inherited from class org.vast.swe.fast.DataBlockProcessor
addToProcessorTree, checkEnabled, getDataComponents, setDataComponentFilter, setDataComponents, setEnabled, visit, visit, visit, visit, visit, visit, visit, visit, visitRange
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.vast.cdm.common.DataStreamWriter
getDataComponents, setDataComponents
-
Field Details
-
writer
protected com.google.gson.stream.JsonWriter writer -
countWriters
-
wrapWithJsonArray
protected boolean wrapWithJsonArray
-
-
Constructor Details
-
JsonDataWriterGson
public JsonDataWriterGson() -
JsonDataWriterGson
public JsonDataWriterGson(com.google.gson.stream.JsonWriter writer)
-
-
Method Details
-
init
protected void init()- Specified by:
init
in classDataBlockProcessor
-
setOutput
-
writeInline
protected void writeInline(boolean writeInline) -
startStream
- Specified by:
startStream
in interfaceDataStreamWriter
- Overrides:
startStream
in classAbstractDataWriter
- Throws:
IOException
-
endStream
- Specified by:
endStream
in interfaceDataStreamWriter
- Overrides:
endStream
in classAbstractDataWriter
- Throws:
IOException
-
flush
- Throws:
IOException
-
close
- Throws:
IOException
-
reset
public void reset()- Specified by:
reset
in interfaceDataStreamWriter
- Overrides:
reset
in classAbstractDataWriter
-
visit
-
visit
-
visit
-
visit
-
visit
-
visit
-
visit
- Specified by:
visit
in interfaceDataComponentVisitor
- Overrides:
visit
in classDataBlockProcessor
-
getRangeProcessor
- Overrides:
getRangeProcessor
in classDataBlockProcessor
-
getRecordProcessor
- Overrides:
getRecordProcessor
in classDataBlockProcessor
-
getVectorProcessor
- Overrides:
getVectorProcessor
in classDataBlockProcessor
-
getChoiceProcessor
- Specified by:
getChoiceProcessor
in classDataBlockProcessor
-
getArrayProcessor
- Overrides:
getArrayProcessor
in classDataBlockProcessor
-
getImplicitSizeProcessor
- Specified by:
getImplicitSizeProcessor
in classDataBlockProcessor
-
getArraySizeSupplier
- Specified by:
getArraySizeSupplier
in classDataBlockProcessor
-