Class AutoConsumeSchema
java.lang.Object
org.apache.pulsar.client.impl.schema.AutoConsumeSchema
- All Implemented Interfaces:
Cloneable
,Schema<GenericRecord>
Auto detect schema, returns only GenericRecord instances.
-
Field Summary
Fields inherited from interface org.apache.pulsar.client.api.Schema
BOOL, BYTEBUFFER, BYTES, DATE, DOUBLE, FLOAT, INSTANT, INT16, INT32, INT64, INT8, LOCAL_DATE, LOCAL_DATE_TIME, LOCAL_TIME, STRING, TIME, TIMESTAMP
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected GenericRecord
Schema<?>
atSchemaVersion
(byte[] schemaVersion) clone()
void
configureSchemaInfo
(String topicName, String componentName, SchemaInfo schemaInfo) decode
(byte[] bytes, byte[] schemaVersion) decode
(ByteBuffer buffer, byte[] schemaVersion) byte[]
encode
(GenericRecord message) void
fetchSchemaIfNeeded
(SchemaVersion schemaVersion) It may happen that the schema is not loaded but we need it, for instance in order to call getSchemaInfo() We cannot call this method in getSchemaInfo, because getSchemaInfo is called in many places and we will introduce lots of deadlocks.Schema<?>
Schema<?>
getInternalSchema
(byte[] schemaVersion) static Schema<?>
getSchema
(SchemaInfo schemaInfo) getSchemaInfo
(byte[] schemaVersion) boolean
void
void
setSchema
(SchemaVersion schemaVersion, Schema<?> schema) void
setSchemaInfoProvider
(SchemaInfoProvider schemaInfoProvider) boolean
toString()
Schema<?>
unwrapInternalSchema
(byte[] schemaVersion) Get a specific schema version, fetching from the Registry if it is not loaded yet.void
validate
(byte[] message) void
validate
(byte[] message, byte[] schemaVersion) static GenericRecord
wrapPrimitiveObject
(Object value, SchemaType type, byte[] schemaVersion)
-
Field Details
-
SCHEMA_INFO
-
-
Constructor Details
-
AutoConsumeSchema
public AutoConsumeSchema()
-
-
Method Details
-
setSchema
-
setSchema
-
validate
public void validate(byte[] message) - Specified by:
validate
in interfaceSchema<GenericRecord>
-
validate
public void validate(byte[] message, byte[] schemaVersion) -
encode
- Specified by:
encode
in interfaceSchema<GenericRecord>
-
supportSchemaVersioning
public boolean supportSchemaVersioning()- Specified by:
supportSchemaVersioning
in interfaceSchema<GenericRecord>
-
atSchemaVersion
-
decode
- Specified by:
decode
in interfaceSchema<GenericRecord>
-
decode
- Specified by:
decode
in interfaceSchema<GenericRecord>
-
setSchemaInfoProvider
- Specified by:
setSchemaInfoProvider
in interfaceSchema<GenericRecord>
-
getSchemaInfo
- Specified by:
getSchemaInfo
in interfaceSchema<GenericRecord>
-
getSchemaInfo
-
configureSchemaInfo
- Specified by:
configureSchemaInfo
in interfaceSchema<GenericRecord>
-
getNativeSchema
- Specified by:
getNativeSchema
in interfaceSchema<GenericRecord>
-
getSchema
-
clone
- Specified by:
clone
in interfaceSchema<GenericRecord>
- Overrides:
clone
in classObject
-
requireFetchingSchemaInfo
public boolean requireFetchingSchemaInfo()- Specified by:
requireFetchingSchemaInfo
in interfaceSchema<GenericRecord>
-
adapt
-
wrapPrimitiveObject
public static GenericRecord wrapPrimitiveObject(Object value, SchemaType type, byte[] schemaVersion) -
getInternalSchema
-
getInternalSchema
-
unwrapInternalSchema
Get a specific schema version, fetching from the Registry if it is not loaded yet. This method is not intended to be used by applications.- Parameters:
schemaVersion
- the version- Returns:
- the Schema at the specific version
- See Also:
-
fetchSchemaIfNeeded
It may happen that the schema is not loaded but we need it, for instance in order to call getSchemaInfo() We cannot call this method in getSchemaInfo, because getSchemaInfo is called in many places and we will introduce lots of deadlocks.- Throws:
SchemaSerializationException
-
toString
-