Class SmileFactory

  • All Implemented Interfaces:
    com.fasterxml.jackson.core.Versioned, java.io.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:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.fasterxml.jackson.core.JsonFactory

        com.fasterxml.jackson.core.JsonFactory.Feature
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean _cfgDelegateToTextual
      Whether non-supported methods (ones trying to output using char-based targets like Writer, for example) should be delegated to regular Jackson JSON processing (if set to true); or throw UnsupportedOperationException (if set to false)
      protected int _smileGeneratorFeatures  
      protected int _smileParserFeatures  
      (package private) static int DEFAULT_SMILE_GENERATOR_FEATURE_FLAGS
      Bitfield (set of flags) of all generator features that are enabled by default.
      (package private) static int DEFAULT_SMILE_PARSER_FEATURE_FLAGS
      Bitfield (set of flags) of all parser features that are enabled by default.
      static java.lang.String FORMAT_NAME_SMILE
      Name used to identify Smile format.
      private static long serialVersionUID  
      • Fields inherited from class com.fasterxml.jackson.core.JsonFactory

        _byteSymbolCanonicalizer, _characterEscapes, _factoryFeatures, _generatorFeatures, _inputDecorator, _maximumNonEscapedChar, _objectCodec, _outputDecorator, _parserFeatures, _quoteChar, _rootCharSymbols, _rootValueSeparator, DEFAULT_FACTORY_FEATURE_FLAGS, DEFAULT_GENERATOR_FEATURE_FLAGS, DEFAULT_PARSER_FEATURE_FLAGS, DEFAULT_QUOTE_CHAR, DEFAULT_ROOT_VALUE_SEPARATOR, FORMAT_NAME_JSON
    • Constructor Summary

      Constructors 
      Constructor Description
      SmileFactory()
      Default constructor used to create factory instances.
      SmileFactory​(com.fasterxml.jackson.core.ObjectCodec oc)  
      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
    • Field Detail

      • DEFAULT_SMILE_PARSER_FEATURE_FLAGS

        static final int DEFAULT_SMILE_PARSER_FEATURE_FLAGS
        Bitfield (set of flags) of all parser features that are enabled by default.
      • DEFAULT_SMILE_GENERATOR_FEATURE_FLAGS

        static final int DEFAULT_SMILE_GENERATOR_FEATURE_FLAGS
        Bitfield (set of flags) of all generator features that are enabled by default.
      • _cfgDelegateToTextual

        protected boolean _cfgDelegateToTextual
        Whether non-supported methods (ones trying to output using char-based targets like Writer, for example) should be delegated to regular Jackson JSON processing (if set to true); or throw UnsupportedOperationException (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​(com.fasterxml.jackson.core.ObjectCodec oc)
      • SmileFactory

        public 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
        Since:
        2.2.1
    • Method Detail

      • copy

        public SmileFactory copy()
        Overrides:
        copy in class com.fasterxml.jackson.core.JsonFactory
      • delegateToTextual

        public void delegateToTextual​(boolean state)
      • readResolve

        protected java.lang.Object 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 class com.fasterxml.jackson.core.JsonFactory
      • version

        public com.fasterxml.jackson.core.Version version()
        Specified by:
        version in interface com.fasterxml.jackson.core.Versioned
        Overrides:
        version in class com.fasterxml.jackson.core.JsonFactory
      • getFormatName

        public java.lang.String getFormatName()
        Overrides:
        getFormatName in class com.fasterxml.jackson.core.JsonFactory
      • hasFormat

        public com.fasterxml.jackson.core.format.MatchStrength hasFormat​(com.fasterxml.jackson.core.format.InputAccessor acc)
                                                                  throws java.io.IOException
        Sub-classes need to override this method (as of 1.8)
        Overrides:
        hasFormat in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • canUseCharArrays

        public boolean canUseCharArrays()
        Overrides:
        canUseCharArrays in class com.fasterxml.jackson.core.JsonFactory
      • canHandleBinaryNatively

        public boolean canHandleBinaryNatively()
        Overrides:
        canHandleBinaryNatively in class com.fasterxml.jackson.core.JsonFactory
      • canParseAsync

        public boolean canParseAsync()
        Overrides:
        canParseAsync in class com.fasterxml.jackson.core.JsonFactory
      • getFormatReadFeatureType

        public java.lang.Class<SmileParser.Feature> getFormatReadFeatureType()
        Overrides:
        getFormatReadFeatureType in class com.fasterxml.jackson.core.JsonFactory
      • getFormatWriteFeatureType

        public java.lang.Class<SmileGenerator.Feature> getFormatWriteFeatureType()
        Overrides:
        getFormatWriteFeatureType in class com.fasterxml.jackson.core.JsonFactory
      • isEnabled

        public final boolean isEnabled​(SmileParser.Feature f)
        Checked whether specified parser feature is enabled.
      • isEnabled

        public final boolean isEnabled​(SmileGenerator.Feature f)
        Check whether specified generator feature is enabled.
      • createParser

        public SmileParser createParser​(java.io.File f)
                                 throws java.io.IOException
        Overrides:
        createParser in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • createParser

        public SmileParser createParser​(java.net.URL url)
                                 throws java.io.IOException
        Overrides:
        createParser in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • createParser

        public SmileParser createParser​(java.io.InputStream in)
                                 throws java.io.IOException
        Overrides:
        createParser in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • createParser

        public SmileParser createParser​(byte[] data)
                                 throws java.io.IOException
        Overrides:
        createParser in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • createParser

        public SmileParser createParser​(byte[] data,
                                        int offset,
                                        int len)
                                 throws java.io.IOException
        Overrides:
        createParser in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • createGenerator

        public SmileGenerator createGenerator​(java.io.OutputStream out,
                                              com.fasterxml.jackson.core.JsonEncoding enc)
                                       throws java.io.IOException
        Method for constructing JsonGenerator for generating Smile-encoded output.

        Since Smile format always uses UTF-8 internally, enc argument is ignored.

        Overrides:
        createGenerator in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • createGenerator

        public SmileGenerator createGenerator​(java.io.OutputStream out)
                                       throws java.io.IOException
        Method for constructing JsonGenerator 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 class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • createNonBlockingByteArrayParser

        public NonBlockingByteArrayParser createNonBlockingByteArrayParser()
                                                                    throws java.io.IOException
        Overrides:
        createNonBlockingByteArrayParser in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
        Since:
        2.9
      • _createParser

        protected SmileParser _createParser​(java.io.InputStream in,
                                            com.fasterxml.jackson.core.io.IOContext ctxt)
                                     throws java.io.IOException
        Overridable factory method that actually instantiates desired parser.
        Overrides:
        _createParser in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • _createParser

        protected com.fasterxml.jackson.core.JsonParser _createParser​(java.io.Reader r,
                                                                      com.fasterxml.jackson.core.io.IOContext ctxt)
                                                               throws java.io.IOException
        Overrides:
        _createParser in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.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 java.io.IOException
        Overrides:
        _createParser in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • _createParser

        protected SmileParser _createParser​(byte[] data,
                                            int offset,
                                            int len,
                                            com.fasterxml.jackson.core.io.IOContext ctxt)
                                     throws java.io.IOException
        Overrides:
        _createParser in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • _createGenerator

        protected com.fasterxml.jackson.core.JsonGenerator _createGenerator​(java.io.Writer out,
                                                                            com.fasterxml.jackson.core.io.IOContext ctxt)
                                                                     throws java.io.IOException
        Overrides:
        _createGenerator in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • _createUTF8Generator

        protected com.fasterxml.jackson.core.JsonGenerator _createUTF8Generator​(java.io.OutputStream out,
                                                                                com.fasterxml.jackson.core.io.IOContext ctxt)
                                                                         throws java.io.IOException
        Overrides:
        _createUTF8Generator in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • _createWriter

        protected java.io.Writer _createWriter​(java.io.OutputStream out,
                                               com.fasterxml.jackson.core.JsonEncoding enc,
                                               com.fasterxml.jackson.core.io.IOContext ctxt)
                                        throws java.io.IOException
        Overrides:
        _createWriter in class com.fasterxml.jackson.core.JsonFactory
        Throws:
        java.io.IOException
      • _nonByteSource

        protected <T> T _nonByteSource()
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • _nonByteTarget

        protected <T> T _nonByteTarget()
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • _createGenerator

        protected SmileGenerator _createGenerator​(java.io.OutputStream out,
                                                  com.fasterxml.jackson.core.io.IOContext ctxt)
                                           throws java.io.IOException
        Throws:
        java.io.IOException