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
Modifier and TypeClassDescriptionstatic interface
A builder of an envelope schema.static final class
The constants for the names of the fields in the message envelope.static enum
The constants for the values for theoperation
field in the message envelope. -
Field Summary
Modifier and TypeFieldDescriptionThe immutable set of allEnvelope.FieldName
s.static final boolean
Flag that specifies whether theEnvelope.FieldName.OPERATION
field is required within the envelope.private final org.apache.kafka.connect.data.Schema
static String
A suffix appended to each schema name representing Envelope -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionorg.apache.kafka.connect.data.Struct
Generate acreate
message with the given information.static Envelope.Builder
org.apache.kafka.connect.data.Struct
Generate andelete
message with the given information.static Envelope
fromSchema
(org.apache.kafka.connect.data.Schema schema) static boolean
isEnvelopeSchema
(String schemaName) static boolean
isEnvelopeSchema
(org.apache.kafka.connect.data.Schema schema) static Envelope.Operation
operationFor
(org.apache.kafka.connect.source.SourceRecord record) Obtain the operation for the given source record.org.apache.kafka.connect.data.Struct
Generate aread
message with the given information.org.apache.kafka.connect.data.Schema
schema()
Get theSchema
describing the message envelopes and their content.static String
schemaName
(String type) Converts an event type name into envelope schema nameorg.apache.kafka.connect.data.Struct
Generate antruncate
message with the given information.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 anupdate
message with the given information.
-
Field Details
-
OPERATION_REQUIRED
public static final boolean OPERATION_REQUIREDFlag that specifies whether theEnvelope.FieldName.OPERATION
field is required within the envelope.- See Also:
-
ALL_FIELD_NAMES
The immutable set of allEnvelope.FieldName
s. -
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
private Envelope(org.apache.kafka.connect.data.Schema schema)
-
-
Method Details
-
defineSchema
-
fromSchema
-
schema
public org.apache.kafka.connect.data.Schema schema()Get theSchema
describing 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 aread
message 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 acreate
message 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 anupdate
message 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 andelete
message 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 antruncate
message 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
-