Package io.debezium.data
Class Envelope
java.lang.Object
io.debezium.data.Envelope
An immutable descriptor for the structure of Debezium message envelopes. An
Envelope can be created for each message
schema using the defineSchema() builder, and once created can generate Struct objects representing CREATE,
READ, UPDATE, and DELETE messages that conform to that schema.- Author:
- Randall Hauch
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceA builder of an envelope schema.static final classThe constants for the names of the fields in the message envelope.static enumThe constants for the values for theoperationfield in the message envelope. -
Field Summary
FieldsModifier and TypeFieldDescriptionThe immutable set of allEnvelope.FieldNames.static final booleanFlag that specifies whether theEnvelope.FieldName.OPERATIONfield is required within the envelope.private final org.apache.kafka.connect.data.Schemastatic StringA suffix appended to each schema name representing Envelopestatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.kafka.connect.data.StructGenerate acreatemessage with the given information.static Envelope.Builderorg.apache.kafka.connect.data.StructGenerate andeletemessage with the given information.static EnvelopefromSchema(org.apache.kafka.connect.data.Schema schema) static booleanisEnvelopeSchema(String schemaName) static booleanisEnvelopeSchema(org.apache.kafka.connect.data.Schema schema) static Envelope.OperationoperationFor(org.apache.kafka.connect.source.SourceRecord record) Obtain the operation for the given source record.org.apache.kafka.connect.data.StructGenerate areadmessage with the given information.org.apache.kafka.connect.data.Schemaschema()Get theSchemadescribing the message envelopes and their content.static StringschemaName(String type) Converts an event type name into envelope schema nameorg.apache.kafka.connect.data.StructGenerate antruncatemessage with the given information.org.apache.kafka.connect.data.Structupdate(Object before, org.apache.kafka.connect.data.Struct after, org.apache.kafka.connect.data.Struct source, Instant timestamp) Generate anupdatemessage with the given information.
-
Field Details
-
SCHEMA_VERSION
public static final int SCHEMA_VERSION- See Also:
-
OPERATION_REQUIRED
public static final boolean OPERATION_REQUIREDFlag that specifies whether theEnvelope.FieldName.OPERATIONfield is required within the envelope.- See Also:
-
ALL_FIELD_NAMES
The immutable set of allEnvelope.FieldNames. -
SCHEMA_NAME_SUFFIX
A suffix appended to each schema name representing Envelope -
schema
private final org.apache.kafka.connect.data.Schema schema
-
-
Constructor Details
-
Envelope
public Envelope(org.apache.kafka.connect.data.Schema schema)
-
-
Method Details
-
defineSchema
-
fromSchema
-
schema
public org.apache.kafka.connect.data.Schema schema()Get theSchemadescribing the message envelopes and their content.- Returns:
- the schema; never null
-
read
public org.apache.kafka.connect.data.Struct read(Object record, org.apache.kafka.connect.data.Struct source, Instant timestamp) Generate areadmessage with the given information.- Parameters:
record- the state of the record as read; may not be nullsource- the information about the source that was read; may be nulltimestamp- the timestamp for this message; may be null- Returns:
- the read message; never null
-
create
public org.apache.kafka.connect.data.Struct create(Object record, org.apache.kafka.connect.data.Struct source, Instant timestamp) Generate acreatemessage with the given information.- Parameters:
record- the state of the record after creation; may not be nullsource- the information about the source where the creation occurred; may be nulltimestamp- the timestamp for this message; may be null- Returns:
- the create message; never null
-
update
public org.apache.kafka.connect.data.Struct update(Object before, org.apache.kafka.connect.data.Struct after, org.apache.kafka.connect.data.Struct source, Instant timestamp) Generate anupdatemessage with the given information.- Parameters:
before- the state of the record before the update; may be nullafter- the state of the record after the update; may not be nullsource- the information about the source where the update occurred; may be nulltimestamp- the timestamp for this message; may be null- Returns:
- the update message; never null
-
delete
public org.apache.kafka.connect.data.Struct delete(Object before, org.apache.kafka.connect.data.Struct source, Instant timestamp) Generate andeletemessage with the given information.- Parameters:
before- the state of the record before the delete; may be nullsource- the information about the source where the deletion occurred; may be nulltimestamp- the timestamp for this message; may be null- Returns:
- the delete message; never null
-
truncate
public org.apache.kafka.connect.data.Struct truncate(org.apache.kafka.connect.data.Struct source, Instant timestamp) Generate antruncatemessage with the given information.- Parameters:
source- the information about the source where the truncate occurred; never nulltimestamp- the timestamp for this message; never null- Returns:
- the truncate message; never null
-
operationFor
Obtain the operation for the given source record.- Parameters:
record- the source record; may not be null- Returns:
- the operation, or null if no valid operation was found in the record
-
schemaName
Converts an event type name into envelope schema name- Parameters:
type-- Returns:
- Envelope schema name
-
isEnvelopeSchema
- Parameters:
schemaName-- Returns:
- true if schema name conforms to Envelope naming
-
isEnvelopeSchema
public static boolean isEnvelopeSchema(org.apache.kafka.connect.data.Schema schema) - Parameters:
schema-- Returns:
- true if schema name conforms to Envelope naming
-