Top Fields Constructors Methods
com.fasterxml.jackson.dataformat.protobuf

public Class ProtobufFactory

extends JsonFactory
Class Inheritance
Imports
java.io.*, java.net.URL, com.fasterxml.jackson.core.*, com.fasterxml.jackson.core.format.InputAccessor, .MatchStrength, com.fasterxml.jackson.core.io.IOContext, .ContentReference, com.fasterxml.jackson.dataformat.protobuf.schema.ProtobufSchema

Field Summary

Modifier and TypeField and Description
private static final long
Inherited from com.fasterxml.jackson.core.JsonFactory:
_byteSymbolCanonicalizer_characterEscapes_errorReportConfiguration_factoryFeatures_generatorDecorators_generatorFeatures_inputDecorator_maximumNonEscapedChar_objectCodec_outputDecorator_parserFeatures_quoteChar_recyclerPool_rootCharSymbols_rootValueSeparator_streamReadConstraints_streamWriteConstraintsDEFAULT_FACTORY_FEATURE_FLAGSDEFAULT_GENERATOR_FEATURE_FLAGSDEFAULT_PARSER_FEATURE_FLAGSDEFAULT_QUOTE_CHARDEFAULT_ROOT_VALUE_SEPARATORFORMAT_NAME_JSON

Constructor Summary

AccessConstructor and Description
public
public
protected
protected
ProtobufFactory(ProtobufFactoryBuilder b)

Constructors used by ProtobufFactoryBuilder for instantiation.

Method Summary

Modifier and TypeMethod and Description
protected IOContext
_createContext(ContentReference
Source/target reference to use for diagnostics, exception messages
contentRef
,
boolean
Whether input/output buffer is managed by this factory or not
resourceManaged
)

Overrides com.fasterxml.jackson.core.JsonFactory._createContext.

Overridable factory method that actually instantiates desired context object.

protected ProtobufGenerator
_createGenerator(Writer
Writer underlying writer to write generated content to
out
,
IOContext
I/O context to use
ctxt
)

Overrides com.fasterxml.jackson.core.JsonFactory._createGenerator.

Overridable factory method that actually instantiates generator for given Writer and context object.

protected ProtobufParser
_createParser(InputStream
InputStream to use for reading content to parse
in
,
IOContext
I/O context to use for parsing
ctxt
)

Overrides com.fasterxml.jackson.core.JsonFactory._createParser.

Overridable factory method that actually instantiates desired parser given InputStream and context object.

protected JsonParser
_createParser(Reader
Reader to use for reading content to parse
r
,
IOContext
I/O context to use for parsing
ctxt
)

Overrides com.fasterxml.jackson.core.JsonFactory._createParser.

Overridable factory method that actually instantiates parser using given Reader object for reading content.

protected JsonParser
_createParser(char[]
Buffer that contains content to parse
data
,
int
Offset to the first character of data to parse
offset
,
int
Number of characters within buffer to parse
len
,
IOContext
I/O context to use for parsing
ctxt
,
boolean
Whether input buffer is recycled by the factory
recyclable
)

Overrides com.fasterxml.jackson.core.JsonFactory._createParser.

Overridable factory method that actually instantiates parser using given char[] object for accessing content.

protected ProtobufParser
_createParser(byte[]
Buffer that contains content to parse
data
,
int
Offset to the first character of data to parse
offset
,
int
Number of characters within buffer to parse
len
,
IOContext
I/O context to use for parsing
ctxt
)

Overrides com.fasterxml.jackson.core.JsonFactory._createParser.

Overridable factory method that actually instantiates parser using given Reader object for reading content passed as raw byte array.

private final ProtobufGenerator
protected ProtobufGenerator
_createUTF8Generator(OutputStream
OutputStream underlying writer to write generated content to
out
,
IOContext
I/O context to use
ctxt
)

Overrides com.fasterxml.jackson.core.JsonFactory._createUTF8Generator.

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

protected Writer
protected <T> T
protected <T> T
public static ProtobufFactoryBuilder
builder()

Hides com.fasterxml.jackson.core.JsonFactory.builder.

Main factory method to use for constructing ProtobufFactory instances with different configuration.

public boolean
canHandleBinaryNatively()

Overrides com.fasterxml.jackson.core.JsonFactory.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.

public boolean
canUseCharArrays()

Overrides com.fasterxml.jackson.core.JsonFactory.canUseCharArrays.

Introspection method that can be used by base factory to check whether access using char[] is something that actual parser implementations can take advantage of, over having to use java.io.Reader.

public ProtobufFactory
copy()

Overrides com.fasterxml.jackson.core.JsonFactory.copy.

Method for constructing a new JsonFactory that has the same settings as this instance, but is otherwise independent (i.e. nothing is actually shared, symbol tables are separate).

public ProtobufGenerator
createGenerator(OutputStream
OutputStream to use for writing JSON content
out
,
JsonEncoding
Character encoding to use
enc
)

Overrides com.fasterxml.jackson.core.JsonFactory.createGenerator.

Method for constructing JSON generator for writing JSON content using specified output stream.

public ProtobufGenerator
createGenerator(OutputStream out)

Overrides com.fasterxml.jackson.core.JsonFactory.createGenerator.

Method for constructing JsonGenerator for generating protobuf-encoded output.

public ProtobufParser
createParser(File
File that contains JSON content to parse
f
)

Overrides com.fasterxml.jackson.core.JsonFactory.createParser.

Method for constructing JSON parser instance to parse contents of specified file.

public ProtobufParser
createParser(URL
URL pointing to resource that contains JSON content to parse
url
)

Overrides com.fasterxml.jackson.core.JsonFactory.createParser.

Method for constructing JSON parser instance to parse contents of resource reference by given URL.

public ProtobufParser
createParser(InputStream
InputStream to use for reading JSON content to parse
in
)

Overrides com.fasterxml.jackson.core.JsonFactory.createParser.

Method for constructing JSON parser instance to parse the contents accessed via specified input stream.

public ProtobufParser
createParser(byte[] data)

Overrides com.fasterxml.jackson.core.JsonFactory.createParser.

Method for constructing parser for parsing the contents of given byte array.

public ProtobufParser
createParser(byte[]
Buffer that contains data to parse
data
,
int
Offset of the first data byte within buffer
offset
,
int
Length of contents to parse within buffer
len
)

Overrides com.fasterxml.jackson.core.JsonFactory.createParser.

Method for constructing parser for parsing the contents of given byte array.

public String
getFormatName()

Overrides com.fasterxml.jackson.core.JsonFactory.getFormatName.

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

public MatchStrength
hasFormat(InputAccessor acc)

Overrides com.fasterxml.jackson.core.JsonFactory.hasFormat.

Sub-classes need to override this method

protected Object
readResolve()

Overrides com.fasterxml.jackson.core.JsonFactory.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 ProtobufFactoryBuilder
rebuild()

Overrides com.fasterxml.jackson.core.JsonFactory.rebuild.

Method that allows construction of differently configured factory, starting with settings of this factory.

public boolean
requiresPropertyOrdering()

Overrides com.fasterxml.jackson.core.JsonFactory.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 Version
version()

Overrides com.fasterxml.jackson.core.JsonFactory.version.

Implements com.fasterxml.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 com.fasterxml.jackson.core.JsonFactory:
_checkInvalidCopy_copy_createContentReference_createContentReference_createContext_createNonBlockingContext_createParser_decorate_decorate_decorate_decorate_decorate_decorate_getBufferRecycler_getRecyclerPoolcanParseAsynccanUseSchemaconfigureconfigureconfigurecreateGeneratorcreateGeneratorcreateGeneratorcreateGeneratorcreateJsonGeneratorcreateJsonGeneratorcreateJsonGeneratorcreateJsonParsercreateJsonParsercreateJsonParsercreateJsonParsercreateJsonParsercreateJsonParsercreateJsonParsercreateNonBlockingByteArrayParsercreateNonBlockingByteBufferParsercreateParsercreateParsercreateParsercreateParsercreateParserdisabledisabledisableenableenableenablegetCharacterEscapesgetCodecgetFactoryFeaturesgetFormatGeneratorFeaturesgetFormatParserFeaturesgetFormatReadFeatureTypegetFormatWriteFeatureTypegetGeneratorFeaturesgetInputDecoratorgetOutputDecoratorgetParserFeaturesgetRootValueSeparatorhasJSONFormatisEnabledisEnabledisEnabledisEnabledisEnabledrequiresCustomCodecsetCharacterEscapessetCodecsetErrorReportConfigurationsetInputDecoratorsetOutputDecoratorsetRecyclerPoolsetRootValueSeparatorsetStreamReadConstraintssetStreamWriteConstraintsstreamReadConstraintsstreamWriteConstraints

Field Detail

serialVersionUIDback to summary
private static final long serialVersionUID

Hides com.fasterxml.jackson.core.JsonFactory.serialVersionUID.

Constructor Detail

ProtobufFactoryback to summary
public ProtobufFactory()
ProtobufFactoryback to summary
public ProtobufFactory(ObjectCodec codec)
ProtobufFactoryback to summary
protected ProtobufFactory(ProtobufFactory src, ObjectCodec oc)
ProtobufFactoryback to summary
protected ProtobufFactory(ProtobufFactoryBuilder b)

Constructors used by ProtobufFactoryBuilder for instantiation.

Since
2.9

Method Detail

_createContextback to summary
protected IOContext _createContext(ContentReference contentRef, boolean resourceManaged)

Overrides com.fasterxml.jackson.core.JsonFactory._createContext.

Doc from com.fasterxml.jackson.core.JsonFactory._createContext.

Overridable factory method that actually instantiates desired context object.

Parameters
contentRef:ContentReference

Source/target reference to use for diagnostics, exception messages

resourceManaged:boolean

Whether input/output buffer is managed by this factory or not

Returns:IOContext

I/O context created

Annotations
@Override
_createGeneratorback to summary
protected ProtobufGenerator _createGenerator(Writer out, IOContext ctxt) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory._createGenerator.

Doc from com.fasterxml.jackson.core.JsonFactory._createGenerator.

Overridable factory method that actually instantiates generator for given Writer and context object.

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.

Parameters
out:Writer

Writer underlying writer to write generated content to

ctxt:IOContext

I/O context to use

Returns:ProtobufGenerator

This factory instance (to allow call chaining)

Annotations
@Override
Exceptions
IOException:
if parser initialization fails due to I/O (write) problem
_createParserback to summary
protected ProtobufParser _createParser(InputStream in, IOContext ctxt) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory._createParser.

Doc from com.fasterxml.jackson.core.JsonFactory._createParser.

Overridable factory method that actually instantiates desired parser given InputStream and context object.

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.

Parameters
in:InputStream

InputStream to use for reading content to parse

ctxt:IOContext

I/O context to use for parsing

Returns:ProtobufParser

Parser constructed

Annotations
@Override
Exceptions
IOException:
if parser initialization fails due to I/O (read) problem
_createParserback to summary
protected JsonParser _createParser(Reader r, IOContext ctxt) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory._createParser.

Doc from com.fasterxml.jackson.core.JsonFactory._createParser.

Overridable factory method that actually instantiates parser using given Reader object for reading content.

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.

Parameters
r:Reader

Reader to use for reading content to parse

ctxt:IOContext

I/O context to use for parsing

Returns:JsonParser

Actual parser to use

Annotations
@Override
Exceptions
IOException:
if parser initialization fails due to I/O (read) problem
_createParserback to summary
protected JsonParser _createParser(char[] data, int offset, int len, IOContext ctxt, boolean recyclable) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory._createParser.

Doc from com.fasterxml.jackson.core.JsonFactory._createParser.

Overridable factory method that actually instantiates parser using given char[] object for accessing content.

Parameters
data:char[]

Buffer that contains content to parse

offset:int

Offset to the first character of data to parse

len:int

Number of characters within buffer to parse

ctxt:IOContext

I/O context to use for parsing

recyclable:boolean

Whether input buffer is recycled by the factory

Returns:JsonParser

Actual parser to use

Annotations
@Override
Exceptions
IOException:
if parser initialization fails due to I/O (read) problem
_createParserback to summary
protected ProtobufParser _createParser(byte[] data, int offset, int len, IOContext ctxt) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory._createParser.

Doc from com.fasterxml.jackson.core.JsonFactory._createParser.

Overridable factory method that actually instantiates parser using given Reader object for reading content passed as raw byte array.

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.

Parameters
data:byte[]

Buffer that contains content to parse

offset:int

Offset to the first character of data to parse

len:int

Number of characters within buffer to parse

ctxt:IOContext

I/O context to use for parsing

Returns:ProtobufParser

Actual parser to use

Annotations
@Override
Exceptions
IOException:
if parser initialization fails due to I/O (read) problem
_createProtobufGeneratorback to summary
private final ProtobufGenerator _createProtobufGenerator(IOContext ctxt, int stdFeat, ObjectCodec codec, OutputStream out) throws IOException
_createUTF8Generatorback to summary
protected ProtobufGenerator _createUTF8Generator(OutputStream out, IOContext ctxt) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory._createUTF8Generator.

Doc from com.fasterxml.jackson.core.JsonFactory._createUTF8Generator.

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.

Parameters
out:OutputStream

OutputStream underlying writer to write generated content to

ctxt:IOContext

I/O context to use

Returns:ProtobufGenerator

This factory instance (to allow call chaining)

Annotations
@Override
Exceptions
IOException:
if parser initialization fails due to I/O (write) problem
_createWriterback to summary
protected Writer _createWriter(OutputStream out, JsonEncoding enc, IOContext ctxt) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory._createWriter.

Annotations
@Override
_nonByteSourceback to summary
protected <T> T _nonByteSource()
_nonByteTargetback to summary
protected <T> T _nonByteTarget()
builderback to summary
public static ProtobufFactoryBuilder builder()

Hides com.fasterxml.jackson.core.JsonFactory.builder.

Main factory method to use for constructing ProtobufFactory instances with different configuration.

Returns:ProtobufFactoryBuilder

Doc from com.fasterxml.jackson.core.JsonFactory.builder.

Builder instance to use

canHandleBinaryNativelyback to summary
public boolean canHandleBinaryNatively()

Overrides com.fasterxml.jackson.core.JsonFactory.canHandleBinaryNatively.

Doc from com.fasterxml.jackson.core.JsonFactory.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:boolean

Whether format supported by this factory supports native binary content

Annotations
@Override
canUseCharArraysback to summary
public boolean canUseCharArrays()

Overrides com.fasterxml.jackson.core.JsonFactory.canUseCharArrays.

Doc from com.fasterxml.jackson.core.JsonFactory.canUseCharArrays.

Introspection method that can be used by base factory to check whether access using char[] is something that actual parser implementations can take advantage of, over having to use java.io.Reader. Sub-types are expected to override definition; default implementation (suitable for JSON) alleges that optimization are possible; and thereby is likely to try to access java.lang.String content by first copying it into recyclable intermediate buffer.

Returns:boolean

Whether access to decoded textual content can be efficiently accessed using parser method getTextCharacters().

Annotations
@Override
copyback to summary
public ProtobufFactory copy()

Overrides com.fasterxml.jackson.core.JsonFactory.copy.

Doc from com.fasterxml.jackson.core.JsonFactory.copy.

Method for constructing a new JsonFactory that has the same settings as this instance, but is otherwise independent (i.e. nothing is actually shared, symbol tables are separate). Note that ObjectCodec reference is not copied but is set to null; caller typically needs to set it after calling this method. Reason for this is that the codec is used for callbacks, and assumption is that there is strict 1-to-1 mapping between codec, factory. Caller has to, then, explicitly set codec after making the copy.

Returns:ProtobufFactory

Copy of this factory instance

Annotations
@Override
createGeneratorback to summary
public ProtobufGenerator createGenerator(OutputStream out, JsonEncoding enc) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory.createGenerator.

Doc from com.fasterxml.jackson.core.JsonFactory.createGenerator.

Method for constructing JSON generator for writing JSON content using specified output stream. Encoding to use must be specified, and needs to be one of available types (as per JSON specification).

Underlying stream is NOT owned by the generator constructed, so that generator will NOT close the output stream when JsonGenerator#close is called (unless auto-closing feature, com.fasterxml.jackson.core.JsonGenerator.Feature#AUTO_CLOSE_TARGET is enabled). Using application needs to close it explicitly if this is the case.

Note

there are formats that use fixed encoding (like most binary data formats) and that ignore passed in encoding.

Parameters
out:OutputStream

OutputStream to use for writing JSON content

enc:JsonEncoding

Character encoding to use

Annotations
@Override
createGeneratorback to summary
public ProtobufGenerator createGenerator(OutputStream out) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory.createGenerator.

Method for constructing JsonGenerator for generating protobuf-encoded output.

Since protobuf format always uses UTF-8 internally, no encoding need to be passed to this method.

Annotations
@Override
createParserback to summary
public ProtobufParser createParser(File f) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory.createParser.

Doc from com.fasterxml.jackson.core.JsonFactory.createParser.

Method for constructing JSON parser instance to parse contents of specified file.

Encoding is auto-detected from contents according to JSON specification recommended mechanism. Json specification supports only UTF-8, UTF-16 and UTF-32 as valid encodings, so auto-detection implemented only for this charsets. For other charsets use createParser(java.io.Reader).

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.

Parameters
f:File

File that contains JSON content to parse

Annotations
@SuppressWarnings:resource
@Override
createParserback to summary
public ProtobufParser createParser(URL url) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory.createParser.

Doc from com.fasterxml.jackson.core.JsonFactory.createParser.

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. Json specification supports only UTF-8, UTF-16 and UTF-32 as valid encodings, so auto-detection implemented only for this charsets. For other charsets use createParser(java.io.Reader).

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.

Parameters
url:URL

URL pointing to resource that contains JSON content to parse

Annotations
@Override
createParserback to summary
public ProtobufParser createParser(InputStream in) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory.createParser.

Doc from com.fasterxml.jackson.core.JsonFactory.createParser.

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) com.fasterxml.jackson.core.StreamReadFeature#AUTO_CLOSE_SOURCE is enabled.

Note

no encoding argument is taken since it can always be auto-detected as suggested by JSON RFC. Json specification supports only UTF-8, UTF-16 and UTF-32 as valid encodings, so auto-detection implemented only for this charsets. For other charsets use createParser(java.io.Reader).

Parameters
in:InputStream

InputStream to use for reading JSON content to parse

Annotations
@Override
createParserback to summary
public ProtobufParser createParser(byte[] data) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory.createParser.

Doc from com.fasterxml.jackson.core.JsonFactory.createParser.

Method for constructing parser for parsing the contents of given byte array.

Annotations
@Override
createParserback to summary
public ProtobufParser createParser(byte[] data, int offset, int len) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory.createParser.

Doc from com.fasterxml.jackson.core.JsonFactory.createParser.

Method for constructing parser for parsing the contents of given byte array.

Parameters
data:byte[]

Buffer that contains data to parse

offset:int

Offset of the first data byte within buffer

len:int

Length of contents to parse within buffer

Annotations
@SuppressWarnings:resource
@Override
getFormatNameback to summary
public String getFormatName()

Overrides com.fasterxml.jackson.core.JsonFactory.getFormatName.

Doc from com.fasterxml.jackson.core.JsonFactory.getFormatName.

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

Returns:String

Name of the format handled by parsers, generators this factory creates

Annotations
@Override
hasFormatback to summary
public MatchStrength hasFormat(InputAccessor acc) throws IOException

Overrides com.fasterxml.jackson.core.JsonFactory.hasFormat.

Sub-classes need to override this method

Annotations
@Override
readResolveback to summary
protected Object readResolve()

Overrides com.fasterxml.jackson.core.JsonFactory.readResolve.

Method that we need to override to actually make restoration go through constructors etc. Also: must be overridden by sub-classes as well.

Returns:Object

Doc from com.fasterxml.jackson.core.JsonFactory.readResolve.

Newly constructed instance

Annotations
@Override
rebuildback to summary
public ProtobufFactoryBuilder rebuild()

Overrides com.fasterxml.jackson.core.JsonFactory.rebuild.

Doc from com.fasterxml.jackson.core.JsonFactory.rebuild.

Method that allows construction of differently configured factory, starting with settings of this factory.

Returns:ProtobufFactoryBuilder

Builder instance to use

Annotations
@Override
requiresPropertyOrderingback to summary
public boolean requiresPropertyOrdering()

Overrides com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering.

Doc from com.fasterxml.jackson.core.JsonFactory.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:boolean

Whether format supported by this factory requires Object properties to be ordered.

Annotations
@Override
versionback to summary
public Version version()

Overrides com.fasterxml.jackson.core.JsonFactory.version.

Implements com.fasterxml.jackson.core.Versioned.version.

Doc from com.fasterxml.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).

Returns:Version

Version of the component

Annotations
@Override