Class TokenStreamFactory

  • All Implemented Interfaces:
    Versioned, java.io.Serializable
    Direct Known Subclasses:
    JsonFactory

    public abstract class TokenStreamFactory
    extends java.lang.Object
    implements Versioned, java.io.Serializable
    Intermediate base class for actual format-specific factories for constructing parsers (reading) and generators (writing). Although full power will only be available with Jackson 3, skeletal implementation added in 2.10 to help conversion of code for 2.x to 3.x migration of projects depending on Jackson
    Since:
    2.10
    See Also:
    Serialized Form
    • Constructor Detail

      • TokenStreamFactory

        public TokenStreamFactory()
    • Method Detail

      • requiresPropertyOrdering

        public abstract boolean requiresPropertyOrdering()
        Introspection method that higher-level functionality may call to see whether underlying data format requires a stable ordering of object properties or not. This is usually used for determining whether to force a stable ordering (like alphabetic ordering by name) if no ordering if explicitly specified.

        Default implementation returns false as JSON does NOT require stable ordering. Formats that require ordering include positional textual formats like CSV, and schema-based binary formats like Avro.

        Returns:
        Whether format supported by this factory requires Object properties to be ordered.
      • canHandleBinaryNatively

        public abstract boolean canHandleBinaryNatively()
        Introspection method that higher-level functionality may call to see whether underlying data format can read and write binary data natively; that is, embeded it as-is without using encodings such as Base64.

        Default implementation returns false as JSON does not support native access: all binary content must use Base64 encoding. Most binary formats (like Smile and Avro) support native binary content.

        Returns:
        Whether format supported by this factory supports native binary content
      • canParseAsync

        public abstract boolean canParseAsync()
        Introspection method that can be used to check whether this factory can create non-blocking parsers: parsers that do not use blocking I/O abstractions but instead use a NonBlockingInputFeeder.
        Returns:
        Whether this factory supports non-blocking ("async") parsing or not (and consequently whether createNonBlockingXxx() method(s) work)
      • getFormatReadFeatureType

        public abstract java.lang.Class<? extends FormatFeature> getFormatReadFeatureType()
        Method for accessing kind of FormatFeature that a parser JsonParser produced by this factory would accept, if any; null returned if none.
        Returns:
        Type of format-specific stream read features, if any; null if none
        Since:
        2.6
      • getFormatWriteFeatureType

        public abstract java.lang.Class<? extends FormatFeature> getFormatWriteFeatureType()
        Method for accessing kind of FormatFeature that a parser JsonGenerator produced by this factory would accept, if any; null returned if none.
        Returns:
        Type of format-specific stream read features, if any; null if none
        Since:
        2.6
      • canUseSchema

        public abstract boolean canUseSchema​(FormatSchema schema)
        Method that can be used to quickly check whether given schema is something that parsers and/or generators constructed by this factory could use. Note that this means possible use, at the level of data format (i.e. schema is for same data format as parsers and generators this factory constructs); individual schema instances may have further usage restrictions.
        Parameters:
        schema - Schema instance to check
        Returns:
        Whether parsers and generators constructed by this factory can use specified format schema instance
        Since:
        2.1
      • getFormatName

        public abstract java.lang.String getFormatName()
        Method that returns short textual id identifying format this factory supports.
        Returns:
        Name of the format handled by parsers, generators this factory creates
      • getParserFeatures

        public abstract int getParserFeatures()
      • getGeneratorFeatures

        public abstract int getGeneratorFeatures()
      • getFormatParserFeatures

        public abstract int getFormatParserFeatures()
      • getFormatGeneratorFeatures

        public abstract int getFormatGeneratorFeatures()
      • createParser

        public abstract JsonParser createParser​(byte[] data)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createParser

        public abstract JsonParser createParser​(byte[] data,
                                                int offset,
                                                int len)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createParser

        public abstract JsonParser createParser​(char[] content)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createParser

        public abstract JsonParser createParser​(char[] content,
                                                int offset,
                                                int len)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createParser

        public abstract JsonParser createParser​(java.io.DataInput in)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createParser

        public abstract JsonParser createParser​(java.io.File f)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createParser

        public abstract JsonParser createParser​(java.io.InputStream in)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createParser

        public abstract JsonParser createParser​(java.io.Reader r)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createParser

        public abstract JsonParser createParser​(java.lang.String content)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createParser

        public abstract JsonParser createParser​(java.net.URL url)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createNonBlockingByteArrayParser

        public abstract JsonParser createNonBlockingByteArrayParser()
                                                             throws java.io.IOException
        Throws:
        java.io.IOException
      • createGenerator

        public abstract JsonGenerator createGenerator​(java.io.DataOutput out,
                                                      JsonEncoding enc)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • createGenerator

        public abstract JsonGenerator createGenerator​(java.io.DataOutput out)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • createGenerator

        public abstract JsonGenerator createGenerator​(java.io.File f,
                                                      JsonEncoding enc)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • createGenerator

        public abstract JsonGenerator createGenerator​(java.io.OutputStream out)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • createGenerator

        public abstract JsonGenerator createGenerator​(java.io.OutputStream out,
                                                      JsonEncoding enc)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • createGenerator

        public abstract JsonGenerator createGenerator​(java.io.Writer w)
                                               throws java.io.IOException
        Throws:
        java.io.IOException