Class SmileFactory
java.lang.Object
com.fasterxml.jackson.core.TokenStreamFactory
com.fasterxml.jackson.core.JsonFactory
com.fasterxml.jackson.dataformat.smile.SmileFactory
- All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned
,Serializable
public class SmileFactory
extends com.fasterxml.jackson.core.JsonFactory
Factory used for constructing
SmileParser
and SmileGenerator
instances; both of which handle
Smile encoded data.
Extends JsonFactory
mostly so that users can actually use it in place
of regular non-Smile factory instances.
Note on using non-byte-based sources/targets (char based, like
Reader
and Writer
): these can not be
used for Smile-format documents, and thus will either downgrade to
textual JSON (when parsing), or throw exception (when trying to create
generator).
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.fasterxml.jackson.core.JsonFactory
com.fasterxml.jackson.core.JsonFactory.Feature
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
Whether non-supported methods (ones trying to output using char-based targets likeWriter
, for example) should be delegated to regular Jackson JSON processing (if set to true); or throwUnsupportedOperationException
(if set to false)protected int
protected int
(package private) static final int
Bitfield (set of flags) of all generator features that are enabled by default.(package private) static final int
Bitfield (set of flags) of all parser features that are enabled by default.static final String
Name used to identify Smile format.private static final long
Fields inherited from class com.fasterxml.jackson.core.JsonFactory
_byteSymbolCanonicalizer, _characterEscapes, _errorReportConfiguration, _factoryFeatures, _generatorDecorators, _generatorFeatures, _inputDecorator, _maximumNonEscapedChar, _objectCodec, _outputDecorator, _parserFeatures, _quoteChar, _recyclerPool, _rootCharSymbols, _rootValueSeparator, _streamReadConstraints, _streamWriteConstraints, DEFAULT_FACTORY_FEATURE_FLAGS, DEFAULT_GENERATOR_FEATURE_FLAGS, DEFAULT_PARSER_FEATURE_FLAGS, DEFAULT_QUOTE_CHAR, DEFAULT_ROOT_VALUE_SEPARATOR, FORMAT_NAME_JSON
-
Constructor Summary
ConstructorsModifierConstructorDescriptionDefault constructor used to create factory instances.SmileFactory
(com.fasterxml.jackson.core.ObjectCodec oc) protected
Constructors used bySmileFactoryBuilder
for instantiation.SmileFactory
(SmileFactory src, com.fasterxml.jackson.core.ObjectCodec oc) Note: REQUIRES 2.2.1 -- unfortunate intra-patch dep but seems preferable to just leaving bug be as is -
Method Summary
Modifier and TypeMethodDescriptionprotected SmileGenerator
_createGenerator
(OutputStream out, com.fasterxml.jackson.core.io.IOContext ctxt) protected com.fasterxml.jackson.core.JsonGenerator
_createGenerator
(Writer out, com.fasterxml.jackson.core.io.IOContext ctxt) protected SmileParser
_createParser
(byte[] data, int offset, int len, com.fasterxml.jackson.core.io.IOContext ctxt) protected com.fasterxml.jackson.core.JsonParser
_createParser
(char[] data, int offset, int len, com.fasterxml.jackson.core.io.IOContext ctxt, boolean recyclable) protected SmileParser
_createParser
(InputStream in, com.fasterxml.jackson.core.io.IOContext ctxt) Overridable factory method that actually instantiates desired parser.protected com.fasterxml.jackson.core.JsonParser
_createParser
(Reader r, com.fasterxml.jackson.core.io.IOContext ctxt) protected com.fasterxml.jackson.core.JsonGenerator
_createUTF8Generator
(OutputStream out, com.fasterxml.jackson.core.io.IOContext ctxt) protected Writer
_createWriter
(OutputStream out, com.fasterxml.jackson.core.JsonEncoding enc, com.fasterxml.jackson.core.io.IOContext ctxt) protected <T> T
protected <T> T
static SmileFactoryBuilder
builder()
Main factory method to use for constructingSmileFactory
instances with different configuration.boolean
boolean
boolean
final SmileFactory
configure
(SmileGenerator.Feature f, boolean state) Method for enabling or disabling specified generator feature (checkSmileGenerator.Feature
for list of features)final SmileFactory
configure
(SmileParser.Feature f, boolean state) Method for enabling or disabling specified parser feature (checkSmileParser.Feature
for list of features)copy()
Method for constructingJsonGenerator
for generating Smile-encoded output.createGenerator
(OutputStream out, com.fasterxml.jackson.core.JsonEncoding enc) Method for constructingJsonGenerator
for generating Smile-encoded output.createParser
(byte[] data) createParser
(byte[] data, int offset, int len) createParser
(File f) createParser
(URL url) void
delegateToTextual
(boolean state) Method for disabling specified generator feature (checkSmileGenerator.Feature
for list of features)Method for disabling specified parser features (checkSmileParser.Feature
for list of features)Method for enabling specified generator features (checkSmileGenerator.Feature
for list of features)Method for enabling specified parser feature (checkSmileParser.Feature
for list of features)int
int
com.fasterxml.jackson.core.format.MatchStrength
hasFormat
(com.fasterxml.jackson.core.format.InputAccessor acc) Sub-classes need to override this method (as of 1.8)final boolean
Check whether specified generator feature is enabled.final boolean
Checked whether specified parser feature is enabled.protected Object
Method that we need to override to actually make restoration go through constructors etc.rebuild()
com.fasterxml.jackson.core.Version
version()
Methods inherited from class com.fasterxml.jackson.core.JsonFactory
_checkInvalidCopy, _copy, _createContentReference, _createContentReference, _createContext, _createContext, _createNonBlockingContext, _createParser, _decorate, _decorate, _decorate, _decorate, _decorate, _decorate, _getBufferRecycler, _getRecyclerPool, canUseSchema, configure, configure, configure, createGenerator, createGenerator, createGenerator, createGenerator, createJsonGenerator, createJsonGenerator, createJsonGenerator, createJsonParser, createJsonParser, createJsonParser, createJsonParser, createJsonParser, createJsonParser, createJsonParser, createNonBlockingByteBufferParser, createParser, createParser, createParser, createParser, createParser, disable, disable, disable, enable, enable, enable, getCharacterEscapes, getCodec, getFactoryFeatures, getGeneratorFeatures, getInputDecorator, getOutputDecorator, getParserFeatures, getRootValueSeparator, hasJSONFormat, isEnabled, isEnabled, isEnabled, isEnabled, isEnabled, requiresCustomCodec, requiresPropertyOrdering, setCharacterEscapes, setCodec, setErrorReportConfiguration, setInputDecorator, setOutputDecorator, setRecyclerPool, setRootValueSeparator, setStreamReadConstraints, setStreamWriteConstraints, streamReadConstraints, streamWriteConstraints
Methods inherited from class com.fasterxml.jackson.core.TokenStreamFactory
_checkRangeBoundsForByteArray, _checkRangeBoundsForCharArray, _createDataOutputWrapper, _fileInputStream, _fileOutputStream, _optimizedStreamFromURL, _reportRangeError
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
FORMAT_NAME_SMILE
Name used to identify Smile format. (and returned bygetFormatName()
- See Also:
-
DEFAULT_SMILE_PARSER_FEATURE_FLAGS
static final int DEFAULT_SMILE_PARSER_FEATURE_FLAGSBitfield (set of flags) of all parser features that are enabled by default. -
DEFAULT_SMILE_GENERATOR_FEATURE_FLAGS
static final int DEFAULT_SMILE_GENERATOR_FEATURE_FLAGSBitfield (set of flags) of all generator features that are enabled by default. -
_cfgDelegateToTextual
protected boolean _cfgDelegateToTextualWhether non-supported methods (ones trying to output using char-based targets likeWriter
, for example) should be delegated to regular Jackson JSON processing (if set to true); or throwUnsupportedOperationException
(if set to false) -
_smileParserFeatures
protected int _smileParserFeatures -
_smileGeneratorFeatures
protected int _smileGeneratorFeatures
-
-
Constructor Details
-
SmileFactory
public SmileFactory()Default constructor used to create factory instances. Creation of a factory instance is a light-weight operation, but it is still a good idea to reuse limited number of factory instances (and quite often just a single instance): factories are used as context for storing some reused processing objects (such as symbol tables parsers use) and this reuse only works within context of a single factory instance. -
SmileFactory
public SmileFactory(com.fasterxml.jackson.core.ObjectCodec oc) -
SmileFactory
Note: REQUIRES 2.2.1 -- unfortunate intra-patch dep but seems preferable to just leaving bug be as is- Since:
- 2.2.1
-
SmileFactory
Constructors used bySmileFactoryBuilder
for instantiation.
-
-
Method Details
-
rebuild
- Overrides:
rebuild
in classcom.fasterxml.jackson.core.JsonFactory
-
builder
Main factory method to use for constructingSmileFactory
instances with different configuration. -
copy
- Overrides:
copy
in classcom.fasterxml.jackson.core.JsonFactory
-
delegateToTextual
public void delegateToTextual(boolean state) -
readResolve
Method that we need to override to actually make restoration go through constructors etc. Also: must be overridden by sub-classes as well.- Overrides:
readResolve
in classcom.fasterxml.jackson.core.JsonFactory
-
version
public com.fasterxml.jackson.core.Version version()- Specified by:
version
in interfacecom.fasterxml.jackson.core.Versioned
- Overrides:
version
in classcom.fasterxml.jackson.core.JsonFactory
-
getFormatName
- Overrides:
getFormatName
in classcom.fasterxml.jackson.core.JsonFactory
-
hasFormat
public com.fasterxml.jackson.core.format.MatchStrength hasFormat(com.fasterxml.jackson.core.format.InputAccessor acc) throws IOException Sub-classes need to override this method (as of 1.8)- Overrides:
hasFormat
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
canUseCharArrays
public boolean canUseCharArrays()- Overrides:
canUseCharArrays
in classcom.fasterxml.jackson.core.JsonFactory
-
canHandleBinaryNatively
public boolean canHandleBinaryNatively()- Overrides:
canHandleBinaryNatively
in classcom.fasterxml.jackson.core.JsonFactory
-
canParseAsync
public boolean canParseAsync()- Overrides:
canParseAsync
in classcom.fasterxml.jackson.core.JsonFactory
-
getFormatReadFeatureType
- Overrides:
getFormatReadFeatureType
in classcom.fasterxml.jackson.core.JsonFactory
-
getFormatWriteFeatureType
- Overrides:
getFormatWriteFeatureType
in classcom.fasterxml.jackson.core.JsonFactory
-
configure
Method for enabling or disabling specified parser feature (checkSmileParser.Feature
for list of features) -
enable
Method for enabling specified parser feature (checkSmileParser.Feature
for list of features) -
disable
Method for disabling specified parser features (checkSmileParser.Feature
for list of features) -
isEnabled
Checked whether specified parser feature is enabled. -
getFormatParserFeatures
public int getFormatParserFeatures()- Overrides:
getFormatParserFeatures
in classcom.fasterxml.jackson.core.JsonFactory
-
configure
Method for enabling or disabling specified generator feature (checkSmileGenerator.Feature
for list of features)- Since:
- 1.2
-
enable
Method for enabling specified generator features (checkSmileGenerator.Feature
for list of features) -
disable
Method for disabling specified generator feature (checkSmileGenerator.Feature
for list of features) -
isEnabled
Check whether specified generator feature is enabled. -
getFormatGeneratorFeatures
public int getFormatGeneratorFeatures()- Overrides:
getFormatGeneratorFeatures
in classcom.fasterxml.jackson.core.JsonFactory
-
createParser
- Overrides:
createParser
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
createParser
- Overrides:
createParser
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
createParser
- Overrides:
createParser
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
createParser
- Overrides:
createParser
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
createParser
- Overrides:
createParser
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
createGenerator
public SmileGenerator createGenerator(OutputStream out, com.fasterxml.jackson.core.JsonEncoding enc) throws IOException Method for constructingJsonGenerator
for generating Smile-encoded output.Since Smile format always uses UTF-8 internally,
enc
argument is ignored.- Overrides:
createGenerator
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
createGenerator
Method for constructingJsonGenerator
for generating Smile-encoded output.Since Smile format always uses UTF-8 internally, no encoding need to be passed to this method.
- Overrides:
createGenerator
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
createNonBlockingByteArrayParser
- Overrides:
createNonBlockingByteArrayParser
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
- Since:
- 2.9
-
_createParser
protected SmileParser _createParser(InputStream in, com.fasterxml.jackson.core.io.IOContext ctxt) throws IOException Overridable factory method that actually instantiates desired parser.- Overrides:
_createParser
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
_createParser
protected com.fasterxml.jackson.core.JsonParser _createParser(Reader r, com.fasterxml.jackson.core.io.IOContext ctxt) throws IOException - Overrides:
_createParser
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
_createParser
protected com.fasterxml.jackson.core.JsonParser _createParser(char[] data, int offset, int len, com.fasterxml.jackson.core.io.IOContext ctxt, boolean recyclable) throws IOException - Overrides:
_createParser
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
_createParser
protected SmileParser _createParser(byte[] data, int offset, int len, com.fasterxml.jackson.core.io.IOContext ctxt) throws IOException - Overrides:
_createParser
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
_createGenerator
protected com.fasterxml.jackson.core.JsonGenerator _createGenerator(Writer out, com.fasterxml.jackson.core.io.IOContext ctxt) throws IOException - Overrides:
_createGenerator
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
_createUTF8Generator
protected com.fasterxml.jackson.core.JsonGenerator _createUTF8Generator(OutputStream out, com.fasterxml.jackson.core.io.IOContext ctxt) throws IOException - Overrides:
_createUTF8Generator
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
_createWriter
protected Writer _createWriter(OutputStream out, com.fasterxml.jackson.core.JsonEncoding enc, com.fasterxml.jackson.core.io.IOContext ctxt) throws IOException - Overrides:
_createWriter
in classcom.fasterxml.jackson.core.JsonFactory
- Throws:
IOException
-
_nonByteSource
- Throws:
IOException
-
_nonByteTarget
- Throws:
IOException
-
_createGenerator
protected SmileGenerator _createGenerator(OutputStream out, com.fasterxml.jackson.core.io.IOContext ctxt) throws IOException - Throws:
IOException
-