Top Description Fields Constructors Methods
tools.jackson.dataformat.avro

public Class AvroFactory

extends BinaryTSFactory
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Imports
java.io.*, tools.jackson.dataformat.avro.apacheimpl.AvroRecyclerPools, .ApacheAvroParserImpl, .ApacheCodecRecycler, tools.jackson.core.*, tools.jackson.core.base.BinaryTSFactory, tools.jackson.core.io.IOContext, tools.jackson.core.util.RecyclerPool, tools.jackson.dataformat.avro.deser.*

Default TokenStreamFactory implementation for encoding/decoding Avro content, uses native Jackson encoder/decoder.

Field Summary

Modifier and TypeField and Description
protected RecyclerPool<ApacheCodecRecycler>
protected boolean
_useApacheLibDecoder

Flag that is set if Apache Avro lib's decoder is to be used for decoding; `false` to use Jackson native Avro decoder.

pack-priv static final int
DEFAULT_AVRO_GENERATOR_FEATURE_FLAGS

Bitfield (set of flags) of all generator features that are enabled by default.

pack-priv static final int
DEFAULT_AVRO_PARSER_FEATURE_FLAGS

Bitfield (set of flags) of all parser features that are enabled by default.

public static final String
private static final long

Constructor Summary

AccessConstructor and Description
public
AvroFactory()

Default constructor used to create factory instances.

protected
protected
AvroFactory(AvroFactoryBuilder b)

Constructors used by AvroFactoryBuilder for instantiation.

Method Summary

Modifier and TypeMethod and Description
protected JsonGenerator
_createGenerator(ObjectWriteContext writeCtxt, IOContext ioCtxt, OutputStream out)

Implements abstract tools.jackson.core.base.BinaryTSFactory._createGenerator.

Overridable factory method that actually instantiates generator for given OutputStream and context object, using UTF-8 encoding.

protected AvroParser
_createParser(ObjectReadContext readCtxt, IOContext ioCtxt, InputStream in)

Implements abstract tools.jackson.core.base.BinaryTSFactory._createParser.

Overridable factory method that actually instantiates desired parser.

protected AvroParser
_createParser(ObjectReadContext readCtxt, IOContext ioCtxt, byte[] data, int offset, int len)

Implements abstract tools.jackson.core.base.BinaryTSFactory._createParser.

protected JsonParser
public static AvroFactoryBuilder
builder()

Main factory method to use for constructing a builder for creating AvroFactory instances with different configuration.

public static AvroFactoryBuilder
builderWithApacheDecoder()

Main factory method to use for constructing a builder for creating AvroFactory instances with different configuration, initialized to use Apache Avro library codec for decoding content (instead of Jackson native decoder).

public static AvroFactoryBuilder
builderWithNativeDecoder()

Main factory method to use for constructing a builder for creating AvroFactory instances with different configuration, initialized to use Jackson antive codec for decoding content (instead of Apache Avro library decoder).

public boolean
canHandleBinaryNatively()

Overrides tools.jackson.core.base.BinaryTSFactory.canHandleBinaryNatively.

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

public boolean
canParseAsync()

Implements abstract tools.jackson.core.TokenStreamFactory.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 tools.jackson.core.async.NonBlockingInputFeeder.

public boolean
canUseSchema(FormatSchema schema)

Implements abstract tools.jackson.core.TokenStreamFactory.canUseSchema.

Method that can be used to quickly check whether given schema is something that parsers and/or generators constructed by this factory could use.

public AvroFactory
copy()

Implements abstract tools.jackson.core.TokenStreamFactory.copy.

Method similar to snapshot(), but one that forces creation of actual new copy that does NOT share any state, even non-visible to calling code, such as symbol table reuse.

public String
getFormatName()

Implements abstract tools.jackson.core.TokenStreamFactory.getFormatName.

Method that returns short textual id identifying format this factory supports.

public Class<AvroReadFeature>
getFormatReadFeatureType()

Overrides tools.jackson.core.TokenStreamFactory.getFormatReadFeatureType.

Method for accessing kind of FormatFeature that a parser JsonParser produced by this factory would accept, if any; null returned if none.

public Class<AvroWriteFeature>
getFormatWriteFeatureType()

Overrides tools.jackson.core.TokenStreamFactory.getFormatWriteFeatureType.

Method for accessing kind of FormatFeature that a parser JsonGenerator produced by this factory would accept, if any; null returned if none.

public final boolean
isEnabled(AvroReadFeature f)

Checked whether specified parser feature is enabled.

public final boolean
isEnabled(AvroWriteFeature f)

Check whether specified generator feature is enabled.

protected 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.

public AvroFactoryBuilder
rebuild()

Implements abstract tools.jackson.core.TokenStreamFactory.rebuild.

Method that can be used to create differently configured stream factories: it will create and return a Builder instance with exact settings of this stream factory.

public boolean
requiresPropertyOrdering()

Overrides tools.jackson.core.TokenStreamFactory.requiresPropertyOrdering.

Introspection method that higher-level functionality may call to see whether underlying data format requires a stable ordering of object properties or not.

public TokenStreamFactory
snapshot()

Implements abstract tools.jackson.core.TokenStreamFactory.snapshot.

Implements tools.jackson.core.util.Snapshottable.snapshot.

Instances are immutable so just return `this`

public Version
version()

Implements abstract tools.jackson.core.TokenStreamFactory.version.

Implements tools.jackson.core.Versioned.version.

Method called to detect version of the component that implements this interface; returned version should never be null, but may return specific "not available" instance (see Version for details).

Inherited from tools.jackson.core.base.BinaryTSFactory:
_createContentReference_createContentReference_nonByteSource_nonByteTargetcreateGeneratorcreateGeneratorcreateGeneratorcreateGeneratorcreateParsercreateParsercreateParsercreateParsercreateParsercreateParsercreateParsercreateParser

Field Detail

_avroRecyclerPoolback to summary
protected RecyclerPool<ApacheCodecRecycler> _avroRecyclerPool
Since
2.16
_useApacheLibDecoderback to summary
protected boolean _useApacheLibDecoder

Flag that is set if Apache Avro lib's decoder is to be used for decoding; `false` to use Jackson native Avro decoder.

DEFAULT_AVRO_GENERATOR_FEATURE_FLAGSback to summary
pack-priv static final int DEFAULT_AVRO_GENERATOR_FEATURE_FLAGS

Bitfield (set of flags) of all generator features that are enabled by default.

DEFAULT_AVRO_PARSER_FEATURE_FLAGSback to summary
pack-priv static final int DEFAULT_AVRO_PARSER_FEATURE_FLAGS

Bitfield (set of flags) of all parser features that are enabled by default.

FORMAT_NAME_AVROback to summary
public static final String FORMAT_NAME_AVRO
serialVersionUIDback to summary
private static final long serialVersionUID

Hides tools.jackson.core.base.BinaryTSFactory.serialVersionUID.

Constructor Detail

AvroFactoryback to summary
public AvroFactory()

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.

AvroFactoryback to summary
protected AvroFactory(AvroFactory src)
AvroFactoryback to summary
protected AvroFactory(AvroFactoryBuilder b)

Constructors used by AvroFactoryBuilder for instantiation.

Since
3.0

Method Detail

_createGeneratorback to summary
protected JsonGenerator _createGenerator(ObjectWriteContext writeCtxt, IOContext ioCtxt, OutputStream out) throws JacksonException

Implements abstract tools.jackson.core.base.BinaryTSFactory._createGenerator.

Doc from tools.jackson.core.base.BinaryTSFactory._createGenerator.

Overridable factory method that actually instantiates generator for given OutputStream and context object, using UTF-8 encoding.

This method is specifically designed to remain compatible between minor versions so that sub-classes can count on it being called as expected. That is, it is part of official interface from sub-class perspective, although not a public method available to users of factory implementations.

Annotations
@Override
Exceptions
JacksonException:
If there is a problem constructing generator
_createParserback to summary
protected AvroParser _createParser(ObjectReadContext readCtxt, IOContext ioCtxt, InputStream in) throws JacksonException

Implements abstract tools.jackson.core.base.BinaryTSFactory._createParser.

Overridable factory method that actually instantiates desired parser.

Annotations
@Override
_createParserback to summary
protected AvroParser _createParser(ObjectReadContext readCtxt, IOContext ioCtxt, byte[] data, int offset, int len) throws JacksonException

Implements abstract tools.jackson.core.base.BinaryTSFactory._createParser.

Annotations
@Override
_createParserback to summary
protected JsonParser _createParser(ObjectReadContext readCtxt, IOContext ioCtxt, DataInput input)

Implements abstract tools.jackson.core.base.BinaryTSFactory._createParser.

Annotations
@Override
builderback to summary
public static AvroFactoryBuilder builder()

Main factory method to use for constructing a builder for creating AvroFactory instances with different configuration. Builder is initialized to defaults and this is equivalent to calling builderWithNativeDecoder.

builderWithApacheDecoderback to summary
public static AvroFactoryBuilder builderWithApacheDecoder()

Main factory method to use for constructing a builder for creating AvroFactory instances with different configuration, initialized to use Apache Avro library codec for decoding content (instead of Jackson native decoder).

builderWithNativeDecoderback to summary
public static AvroFactoryBuilder builderWithNativeDecoder()

Main factory method to use for constructing a builder for creating AvroFactory instances with different configuration, initialized to use Jackson antive codec for decoding content (instead of Apache Avro library decoder).

canHandleBinaryNativelyback to summary
public boolean canHandleBinaryNatively()

Overrides tools.jackson.core.base.BinaryTSFactory.canHandleBinaryNatively.

Doc from tools.jackson.core.TokenStreamFactory.canHandleBinaryNatively.

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

Annotations
@Override
canParseAsyncback to summary
public boolean canParseAsync()

Implements abstract tools.jackson.core.TokenStreamFactory.canParseAsync.

Doc from tools.jackson.core.TokenStreamFactory.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 tools.jackson.core.async.NonBlockingInputFeeder.

Annotations
@Override
canUseSchemaback to summary
public boolean canUseSchema(FormatSchema schema)

Implements abstract tools.jackson.core.TokenStreamFactory.canUseSchema.

Doc from tools.jackson.core.TokenStreamFactory.canUseSchema.

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.

Annotations
@Override
copyback to summary
public AvroFactory copy()

Implements abstract tools.jackson.core.TokenStreamFactory.copy.

Doc from tools.jackson.core.TokenStreamFactory.copy.

Method similar to snapshot(), but one that forces creation of actual new copy that does NOT share any state, even non-visible to calling code, such as symbol table reuse.

Implementation should be functionally equivalent to:

    factoryInstance.rebuild().build();
Annotations
@Override
getFormatNameback to summary
public String getFormatName()

Implements abstract tools.jackson.core.TokenStreamFactory.getFormatName.

Doc from tools.jackson.core.TokenStreamFactory.getFormatName.

Method that returns short textual id identifying format this factory supports.

Annotations
@Override
getFormatReadFeatureTypeback to summary
public Class<AvroReadFeature> getFormatReadFeatureType()

Overrides tools.jackson.core.TokenStreamFactory.getFormatReadFeatureType.

Doc from tools.jackson.core.TokenStreamFactory.getFormatReadFeatureType.

Method for accessing kind of FormatFeature that a parser JsonParser produced by this factory would accept, if any; null returned if none.

Annotations
@Override
getFormatWriteFeatureTypeback to summary
public Class<AvroWriteFeature> getFormatWriteFeatureType()

Overrides tools.jackson.core.TokenStreamFactory.getFormatWriteFeatureType.

Doc from tools.jackson.core.TokenStreamFactory.getFormatWriteFeatureType.

Method for accessing kind of FormatFeature that a parser JsonGenerator produced by this factory would accept, if any; null returned if none.

Annotations
@Override
isEnabledback to summary
public final boolean isEnabled(AvroReadFeature f)

Checked whether specified parser feature is enabled.

isEnabledback to summary
public final boolean isEnabled(AvroWriteFeature f)

Check whether specified generator feature is enabled.

readResolveback to summary
protected 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.

rebuildback to summary
public AvroFactoryBuilder rebuild()

Implements abstract tools.jackson.core.TokenStreamFactory.rebuild.

Doc from tools.jackson.core.TokenStreamFactory.rebuild.

Method that can be used to create differently configured stream factories: it will create and return a Builder instance with exact settings of this stream factory.

Annotations
@Override
requiresPropertyOrderingback to summary
public boolean requiresPropertyOrdering()

Overrides tools.jackson.core.TokenStreamFactory.requiresPropertyOrdering.

Doc from tools.jackson.core.TokenStreamFactory.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.

Annotations
@Override
snapshotback to summary
public TokenStreamFactory snapshot()

Implements abstract tools.jackson.core.TokenStreamFactory.snapshot.

Implements tools.jackson.core.util.Snapshottable.snapshot.

Instances are immutable so just return `this`

Annotations
@Override
versionback to summary
public Version version()

Implements abstract tools.jackson.core.TokenStreamFactory.version.

Implements tools.jackson.core.Versioned.version.

Doc from tools.jackson.core.Versioned.version.

Method called to detect version of the component that implements this interface; returned version should never be null, but may return specific "not available" instance (see Version for details).

Annotations
@Override