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. AnEnvelopecan be created for each message schema using thedefineSchema()builder, and once created can generateStructobjects 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 interfaceEnvelope.BuilderA builder of an envelope schema.static classEnvelope.FieldNameThe constants for the names of the fields in the message envelope.static classEnvelope.OperationThe constants for the values for theoperationfield in the message envelope.
-
Field Summary
Fields Modifier and Type Field Description static Set<String>ALL_FIELD_NAMESThe immutable set of allEnvelope.FieldNames.static booleanOPERATION_REQUIREDFlag that specifies whether theEnvelope.FieldName.OPERATIONfield is required within the envelope.private org.apache.kafka.connect.data.Schemaschemastatic StringSCHEMA_NAME_SUFFIXA suffix appended to each schema name representing Envelope
-
Constructor Summary
Constructors Modifier Constructor Description privateEnvelope(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.Structcreate(Object record, org.apache.kafka.connect.data.Struct source, Instant timestamp)Generate acreatemessage with the given information.static Envelope.BuilderdefineSchema()org.apache.kafka.connect.data.Structdelete(Object before, org.apache.kafka.connect.data.Struct source, Instant timestamp)Generate 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.Structread(Object record, org.apache.kafka.connect.data.Struct source, Instant timestamp)Generate 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.Structtruncate(org.apache.kafka.connect.data.Struct source, Instant timestamp)Generate 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 Detail
-
OPERATION_REQUIRED
public static final boolean OPERATION_REQUIRED
Flag that specifies whether theEnvelope.FieldName.OPERATIONfield 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.FieldNames.
-
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 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
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
-
-