Skip to content

Commit dc0a153

Browse files
author
Mike Skells
committed
add simple extractor from a field
1 parent 05518a5 commit dc0a153

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

commons/src/main/java/io/aiven/kafka/connect/common/config/TimestampSource.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
import java.time.ZoneId;
2121
import java.time.ZonedDateTime;
2222

23+
import org.apache.kafka.connect.data.Field;
24+
import org.apache.kafka.connect.data.Schema;
25+
import org.apache.kafka.connect.data.Struct;
2326
import org.apache.kafka.connect.header.Header;
2427
import org.apache.kafka.connect.sink.SinkRecord;
2528

@@ -148,11 +151,11 @@ public ZonedDateTime time(final SinkRecord record) {
148151
}
149152

150153
final class DataTimestampSource extends AbstractTimestampSource {
151-
private final String field;
154+
private final String fieldName;
152155

153156
DataTimestampSource(final String field, final ZoneId zoneId) {
154157
super(zoneId, Type.DATA);
155-
this.field = field;
158+
this.fieldName = field;
156159
}
157160

158161
@Override
@@ -162,7 +165,12 @@ public ZonedDateTime time(final SinkRecord record) {
162165
}
163166

164167
private Object extract(Object value) {
165-
//TODO
168+
if (value instanceof Struct) {
169+
Struct data = (Struct) value;
170+
Schema schema = data.schema();
171+
Field field = schema.field(fieldName);
172+
return field == null ? null : data.get(field);
173+
}
166174
return null;
167175
}
168176
}

0 commit comments

Comments
 (0)