Class SmileFactory
- java.lang.Object
-
- org.codehaus.jackson.JsonFactory
-
- org.codehaus.jackson.smile.SmileFactory
-
- All Implemented Interfaces:
Versioned
public class SmileFactory extends JsonFactory
Factory used for constructingSmileParser
andSmileGenerator
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
andWriter
): 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).- Since:
- 1.6
- Author:
- tatu
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
_cfgDelegateToTextual
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
_smileGeneratorFeatures
protected int
_smileParserFeatures
static java.lang.String
FORMAT_NAME_SMILE
Name used to identify Smile format.-
Fields inherited from class org.codehaus.jackson.JsonFactory
_characterEscapes, _generatorFeatures, _inputDecorator, _objectCodec, _outputDecorator, _parserFeatures, _recyclerRef, _rootByteSymbols, _rootCharSymbols, FORMAT_NAME_JSON
-
-
Constructor Summary
Constructors Constructor Description SmileFactory()
Default constructor used to create factory instances.SmileFactory(ObjectCodec oc)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected SmileGenerator
_createJsonGenerator(java.io.OutputStream out, IOContext ctxt)
protected JsonGenerator
_createJsonGenerator(java.io.Writer out, IOContext ctxt)
Overridable factory method that actually instantiates desired generator.protected SmileParser
_createJsonParser(byte[] data, int offset, int len, IOContext ctxt)
Overridable factory method that actually instantiates desired parser.protected SmileParser
_createJsonParser(java.io.InputStream in, IOContext ctxt)
Overridable factory method that actually instantiates desired parser.protected JsonParser
_createJsonParser(java.io.Reader r, IOContext ctxt)
Overridable factory method that actually instantiates desired parser.protected java.io.Writer
_createWriter(java.io.OutputStream out, JsonEncoding enc, IOContext ctxt)
SmileFactory
configure(SmileGenerator.Feature f, boolean state)
Method for enabling or disabling specified generator feature (checkJsonGenerator.Feature
for list of features)SmileFactory
configure(SmileParser.Feature f, boolean state)
Method for enabling or disabling specified parser feature (checkSmileParser.Feature
for list of features)SmileGenerator
createJsonGenerator(java.io.OutputStream out)
Since Smile format always uses UTF-8 internally, no encoding need to be passed to this method.SmileGenerator
createJsonGenerator(java.io.OutputStream out, JsonEncoding enc)
note: co-variant return typeSmileParser
createJsonParser(byte[] data)
Method for constructing parser for parsing the contents of given byte array.SmileParser
createJsonParser(byte[] data, int offset, int len)
Method for constructing parser for parsing the contents of given byte array.SmileParser
createJsonParser(java.io.File f)
Method for constructing JSON parser instance to parse contents of specified file.SmileParser
createJsonParser(java.io.InputStream in)
Method for constructing JSON parser instance to parse the contents accessed via specified input stream.SmileParser
createJsonParser(java.net.URL url)
Method for constructing JSON parser instance to parse contents of resource reference by given URL.void
delegateToTextual(boolean state)
SmileFactory
disable(SmileGenerator.Feature f)
Method for disabling specified generator feature (checkJsonGenerator.Feature
for list of features)SmileFactory
disable(SmileParser.Feature f)
Method for disabling specified parser features (checkSmileParser.Feature
for list of features)SmileFactory
enable(SmileGenerator.Feature f)
Method for enabling specified generator features (checkJsonGenerator.Feature
for list of features)SmileFactory
enable(SmileParser.Feature f)
Method for enabling specified parser feature (checkSmileParser.Feature
for list of features)java.lang.String
getFormatName()
Method that returns short textual id identifying format this factory supports.MatchStrength
hasFormat(InputAccessor acc)
Sub-classes need to override this method (as of 1.8)boolean
isEnabled(SmileGenerator.Feature f)
Check whether specified generator feature is enabled.boolean
isEnabled(SmileParser.Feature f)
Checked whether specified parser feature is enabled.-
Methods inherited from class org.codehaus.jackson.JsonFactory
_createContext, _createUTF8JsonGenerator, _getBufferRecycler, _optimizedStreamFromURL, configure, configure, createJsonGenerator, createJsonGenerator, createJsonParser, createJsonParser, disable, disable, disableGeneratorFeature, disableParserFeature, enable, enable, enableGeneratorFeature, enableParserFeature, getCharacterEscapes, getCodec, getInputDecorator, getOutputDecorator, hasJSONFormat, isEnabled, isEnabled, isGeneratorFeatureEnabled, isParserFeatureEnabled, setCharacterEscapes, setCodec, setGeneratorFeature, setInputDecorator, setOutputDecorator, setParserFeature, version
-
-
-
-
Field Detail
-
FORMAT_NAME_SMILE
public static final java.lang.String FORMAT_NAME_SMILE
Name used to identify Smile format. (and returned bygetFormatName()
- See Also:
- Constant Field Values
-
_cfgDelegateToTextual
protected boolean _cfgDelegateToTextual
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)
-
_smileParserFeatures
protected int _smileParserFeatures
-
_smileGeneratorFeatures
protected int _smileGeneratorFeatures
-
-
Constructor Detail
-
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(ObjectCodec oc)
-
-
Method Detail
-
delegateToTextual
public void delegateToTextual(boolean state)
-
getFormatName
public java.lang.String getFormatName()
Description copied from class:JsonFactory
Method that returns short textual id identifying format this factory supports.Note: sub-classes should override this method; default implementation will return null for all sub-classes
- Overrides:
getFormatName
in classJsonFactory
-
hasFormat
public MatchStrength hasFormat(InputAccessor acc) throws java.io.IOException
Sub-classes need to override this method (as of 1.8)- Overrides:
hasFormat
in classJsonFactory
- Throws:
java.io.IOException
-
configure
public final SmileFactory configure(SmileParser.Feature f, boolean state)
Method for enabling or disabling specified parser feature (checkSmileParser.Feature
for list of features)
-
enable
public SmileFactory enable(SmileParser.Feature f)
Method for enabling specified parser feature (checkSmileParser.Feature
for list of features)
-
disable
public SmileFactory disable(SmileParser.Feature f)
Method for disabling specified parser features (checkSmileParser.Feature
for list of features)
-
isEnabled
public final boolean isEnabled(SmileParser.Feature f)
Checked whether specified parser feature is enabled.
-
configure
public final SmileFactory configure(SmileGenerator.Feature f, boolean state)
Method for enabling or disabling specified generator feature (checkJsonGenerator.Feature
for list of features)- Since:
- 1.2
-
enable
public SmileFactory enable(SmileGenerator.Feature f)
Method for enabling specified generator features (checkJsonGenerator.Feature
for list of features)
-
disable
public SmileFactory disable(SmileGenerator.Feature f)
Method for disabling specified generator feature (checkJsonGenerator.Feature
for list of features)
-
isEnabled
public final boolean isEnabled(SmileGenerator.Feature f)
Check whether specified generator feature is enabled.
-
createJsonParser
public SmileParser createJsonParser(java.io.File f) throws java.io.IOException, JsonParseException
Description copied from class:JsonFactory
Method for constructing JSON parser instance to parse contents of specified file. Encoding is auto-detected from contents according to JSON specification recommended mechanism.Underlying input stream (needed for reading contents) will be owned (and managed, i.e. closed as need be) by the parser, since caller has no access to it.
- Overrides:
createJsonParser
in classJsonFactory
- Parameters:
f
- File that contains JSON content to parse- Throws:
java.io.IOException
JsonParseException
-
createJsonParser
public SmileParser createJsonParser(java.net.URL url) throws java.io.IOException, JsonParseException
Description copied from class:JsonFactory
Method for constructing JSON parser instance to parse contents of resource reference by given URL. Encoding is auto-detected from contents according to JSON specification recommended mechanism.Underlying input stream (needed for reading contents) will be owned (and managed, i.e. closed as need be) by the parser, since caller has no access to it.
- Overrides:
createJsonParser
in classJsonFactory
- Parameters:
url
- URL pointing to resource that contains JSON content to parse- Throws:
java.io.IOException
JsonParseException
-
createJsonParser
public SmileParser createJsonParser(java.io.InputStream in) throws java.io.IOException, JsonParseException
Description copied from class:JsonFactory
Method for constructing JSON parser instance to parse the contents accessed via specified input stream.The input stream will not be owned by the parser, it will still be managed (i.e. closed if end-of-stream is reacher, or parser close method called) if (and only if)
JsonParser.Feature.AUTO_CLOSE_SOURCE
is enabled.Note: no encoding argument is taken since it can always be auto-detected as suggested by Json RFC.
- Overrides:
createJsonParser
in classJsonFactory
- Parameters:
in
- InputStream to use for reading JSON content to parse- Throws:
java.io.IOException
JsonParseException
-
createJsonParser
public SmileParser createJsonParser(byte[] data) throws java.io.IOException, JsonParseException
Description copied from class:JsonFactory
Method for constructing parser for parsing the contents of given byte array.- Overrides:
createJsonParser
in classJsonFactory
- Throws:
java.io.IOException
JsonParseException
-
createJsonParser
public SmileParser createJsonParser(byte[] data, int offset, int len) throws java.io.IOException, JsonParseException
Description copied from class:JsonFactory
Method for constructing parser for parsing the contents of given byte array.- Overrides:
createJsonParser
in classJsonFactory
- Parameters:
data
- Buffer that contains data to parseoffset
- Offset of the first data byte within bufferlen
- Length of contents to parse within buffer- Throws:
java.io.IOException
JsonParseException
-
createJsonGenerator
public SmileGenerator createJsonGenerator(java.io.OutputStream out, JsonEncoding enc) throws java.io.IOException
note: co-variant return type
- Overrides:
createJsonGenerator
in classJsonFactory
- Parameters:
out
- OutputStream to use for writing JSON contentenc
- Character encoding to use- Throws:
java.io.IOException
-
createJsonGenerator
public SmileGenerator createJsonGenerator(java.io.OutputStream out) throws java.io.IOException
Since Smile format always uses UTF-8 internally, no encoding need to be passed to this method.- Overrides:
createJsonGenerator
in classJsonFactory
- Throws:
java.io.IOException
-
_createJsonParser
protected SmileParser _createJsonParser(java.io.InputStream in, IOContext ctxt) throws java.io.IOException, JsonParseException
Overridable factory method that actually instantiates desired parser.- Overrides:
_createJsonParser
in classJsonFactory
- Throws:
java.io.IOException
JsonParseException
-
_createJsonParser
protected JsonParser _createJsonParser(java.io.Reader r, IOContext ctxt) throws java.io.IOException, JsonParseException
Overridable factory method that actually instantiates desired parser.- Overrides:
_createJsonParser
in classJsonFactory
- Throws:
java.io.IOException
JsonParseException
-
_createJsonParser
protected SmileParser _createJsonParser(byte[] data, int offset, int len, IOContext ctxt) throws java.io.IOException, JsonParseException
Overridable factory method that actually instantiates desired parser.- Overrides:
_createJsonParser
in classJsonFactory
- Throws:
java.io.IOException
JsonParseException
-
_createJsonGenerator
protected JsonGenerator _createJsonGenerator(java.io.Writer out, IOContext ctxt) throws java.io.IOException
Overridable factory method that actually instantiates desired generator.- Overrides:
_createJsonGenerator
in classJsonFactory
- Throws:
java.io.IOException
-
_createWriter
protected java.io.Writer _createWriter(java.io.OutputStream out, JsonEncoding enc, IOContext ctxt) throws java.io.IOException
- Overrides:
_createWriter
in classJsonFactory
- Throws:
java.io.IOException
-
_createJsonGenerator
protected SmileGenerator _createJsonGenerator(java.io.OutputStream out, IOContext ctxt) throws java.io.IOException
- Throws:
java.io.IOException
-
-