Package io.debezium.data
Class Envelope
- java.lang.Object
-
- io.debezium.data.Envelope
-
public final class Envelope extends Object
An immutable descriptor for the structure of Debezium message envelopes. AnEnvelope
can be created for each message schema using thedefineSchema()
builder, and once created can generateStruct
objects representing CREATE, READ, UPDATE, and DELETE messages that conform to that schema.- Author:
- Randall Hauch
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Envelope.Builder
A builder of an envelope schema.static class
Envelope.FieldName
The constants for the names of the fields in the message envelope.static class
Envelope.Operation
The constants for the values for theoperation
field in the message envelope.
-
Field Summary
Fields Modifier and Type Field Description static Set<String>
ALL_FIELD_NAMES
The immutable set of allEnvelope.FieldName
s.static boolean
OPERATION_REQUIRED
Flag that specifies whether theEnvelope.FieldName.OPERATION
field is required within the envelope.private org.apache.kafka.connect.data.Schema
schema
static String
SCHEMA_NAME_SUFFIX
A suffix appended to each schema name representing Envelope
-
Constructor Summary
Constructors Modifier Constructor Description private
Envelope(org.apache.kafka.connect.data.Schema schema)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.static Envelope.Builder
defineSchema()
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.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
read(Object record, org.apache.kafka.connect.data.Struct source, Instant timestamp)
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
truncate(org.apache.kafka.connect.data.Struct source, Instant timestamp)
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 Detail
-
OPERATION_REQUIRED
public static final boolean OPERATION_REQUIRED
Flag that specifies whether theEnvelope.FieldName.OPERATION
field is required within the envelope.- See Also:
- Constant Field Values
-
ALL_FIELD_NAMES
public static final Set<String> ALL_FIELD_NAMES
The immutable set of allEnvelope.FieldName
s.
-
SCHEMA_NAME_SUFFIX
public static String SCHEMA_NAME_SUFFIX
A suffix appended to each schema name representing Envelope
-
schema
private final org.apache.kafka.connect.data.Schema schema
-
-
Method Detail
-
defineSchema
public static Envelope.Builder defineSchema()
-
fromSchema
public static Envelope fromSchema(org.apache.kafka.connect.data.Schema schema)
-
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
public static Envelope.Operation operationFor(org.apache.kafka.connect.source.SourceRecord record)
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
public static String schemaName(String type)
Converts an event type name into envelope schema name- Parameters:
type
-- Returns:
- Envelope schema name
-
isEnvelopeSchema
public static boolean isEnvelopeSchema(String schemaName)
- 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
-
-