Class AutoConsumeSchema
- java.lang.Object
-
- org.apache.pulsar.client.impl.schema.AutoConsumeSchema
-
- All Implemented Interfaces:
java.lang.Cloneable,org.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>
public class AutoConsumeSchema extends java.lang.Object implements org.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>Auto detect schema, returns only GenericRecord instances.
-
-
Constructor Summary
Constructors Constructor Description AutoConsumeSchema()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.apache.pulsar.client.api.schema.GenericRecordadapt(java.lang.Object value, byte[] schemaVersion)org.apache.pulsar.client.api.Schema<?>atSchemaVersion(byte[] schemaVersion)org.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>clone()voidconfigureSchemaInfo(java.lang.String topicName, java.lang.String componentName, org.apache.pulsar.common.schema.SchemaInfo schemaInfo)org.apache.pulsar.client.api.schema.GenericRecorddecode(byte[] bytes, byte[] schemaVersion)byte[]encode(org.apache.pulsar.client.api.schema.GenericRecord message)voidfetchSchemaIfNeeded(org.apache.pulsar.common.protocol.schema.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.org.apache.pulsar.client.api.Schema<?>getInternalSchema()org.apache.pulsar.client.api.Schema<?>getInternalSchema(byte[] schemaVersion)java.util.Optional<java.lang.Object>getNativeSchema()static org.apache.pulsar.client.api.Schema<?>getSchema(org.apache.pulsar.common.schema.SchemaInfo schemaInfo)org.apache.pulsar.common.schema.SchemaInfogetSchemaInfo()org.apache.pulsar.common.schema.SchemaInfogetSchemaInfo(byte[] schemaVersion)booleanrequireFetchingSchemaInfo()voidsetSchema(org.apache.pulsar.client.api.Schema<?> schema)voidsetSchema(org.apache.pulsar.common.protocol.schema.SchemaVersion schemaVersion, org.apache.pulsar.client.api.Schema<?> schema)voidsetSchemaInfoProvider(org.apache.pulsar.client.api.schema.SchemaInfoProvider schemaInfoProvider)booleansupportSchemaVersioning()java.lang.StringtoString()org.apache.pulsar.client.api.Schema<?>unwrapInternalSchema(byte[] schemaVersion)Get a specific schema version, fetching from the Registry if it is not loaded yet.voidvalidate(byte[] message)voidvalidate(byte[] message, byte[] schemaVersion)static org.apache.pulsar.client.api.schema.GenericRecordwrapPrimitiveObject(java.lang.Object value, org.apache.pulsar.common.schema.SchemaType type, byte[] schemaVersion)
-
-
-
Method Detail
-
setSchema
public void setSchema(org.apache.pulsar.common.protocol.schema.SchemaVersion schemaVersion, org.apache.pulsar.client.api.Schema<?> schema)
-
setSchema
public void setSchema(org.apache.pulsar.client.api.Schema<?> schema)
-
validate
public void validate(byte[] message)
- Specified by:
validatein interfaceorg.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>
-
validate
public void validate(byte[] message, byte[] schemaVersion)
-
encode
public byte[] encode(org.apache.pulsar.client.api.schema.GenericRecord message)
- Specified by:
encodein interfaceorg.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>
-
supportSchemaVersioning
public boolean supportSchemaVersioning()
- Specified by:
supportSchemaVersioningin interfaceorg.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>
-
atSchemaVersion
public org.apache.pulsar.client.api.Schema<?> atSchemaVersion(byte[] schemaVersion)
-
decode
public org.apache.pulsar.client.api.schema.GenericRecord decode(byte[] bytes, byte[] schemaVersion)- Specified by:
decodein interfaceorg.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>
-
setSchemaInfoProvider
public void setSchemaInfoProvider(org.apache.pulsar.client.api.schema.SchemaInfoProvider schemaInfoProvider)
- Specified by:
setSchemaInfoProviderin interfaceorg.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>
-
getSchemaInfo
public org.apache.pulsar.common.schema.SchemaInfo getSchemaInfo()
- Specified by:
getSchemaInfoin interfaceorg.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>
-
getSchemaInfo
public org.apache.pulsar.common.schema.SchemaInfo getSchemaInfo(byte[] schemaVersion)
-
configureSchemaInfo
public void configureSchemaInfo(java.lang.String topicName, java.lang.String componentName, org.apache.pulsar.common.schema.SchemaInfo schemaInfo)- Specified by:
configureSchemaInfoin interfaceorg.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>
-
getNativeSchema
public java.util.Optional<java.lang.Object> getNativeSchema()
- Specified by:
getNativeSchemain interfaceorg.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>
-
getSchema
public static org.apache.pulsar.client.api.Schema<?> getSchema(org.apache.pulsar.common.schema.SchemaInfo schemaInfo)
-
clone
public org.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord> clone()
- Specified by:
clonein interfaceorg.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>- Overrides:
clonein classjava.lang.Object
-
requireFetchingSchemaInfo
public boolean requireFetchingSchemaInfo()
- Specified by:
requireFetchingSchemaInfoin interfaceorg.apache.pulsar.client.api.Schema<org.apache.pulsar.client.api.schema.GenericRecord>
-
adapt
protected org.apache.pulsar.client.api.schema.GenericRecord adapt(java.lang.Object value, byte[] schemaVersion)
-
wrapPrimitiveObject
public static org.apache.pulsar.client.api.schema.GenericRecord wrapPrimitiveObject(java.lang.Object value, org.apache.pulsar.common.schema.SchemaType type, byte[] schemaVersion)
-
getInternalSchema
public org.apache.pulsar.client.api.Schema<?> getInternalSchema()
-
getInternalSchema
public org.apache.pulsar.client.api.Schema<?> getInternalSchema(byte[] schemaVersion)
-
unwrapInternalSchema
public org.apache.pulsar.client.api.Schema<?> unwrapInternalSchema(byte[] schemaVersion)
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:
atSchemaVersion(byte[])
-
fetchSchemaIfNeeded
public void fetchSchemaIfNeeded(org.apache.pulsar.common.protocol.schema.SchemaVersion schemaVersion) throws org.apache.pulsar.client.api.SchemaSerializationExceptionIt 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:
org.apache.pulsar.client.api.SchemaSerializationException
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-