in src/main/java/com/aliyun/dts/subscribe/clients/record/AvroRecordParser.java [176:205]
public static RowImage getRowImage(RecordSchema recordSchema, Record avroRecord, boolean isBefore) {
List<Object> rowImage;
if (isBefore) {
rowImage = (List<Object>) avroRecord.getBeforeImages();
} else {
Object avroRowImage = avroRecord.getAfterImages();
if (null == avroRowImage) {
rowImage = null;
} else if (avroRowImage instanceof String) {
rowImage = Arrays.asList(avroRowImage.toString());
} else {
rowImage = (List<Object>) avroRecord.getAfterImages();
}
}
DefaultRowImage rs = null;
if (rowImage != null && !rowImage.isEmpty()) {
rs = new DefaultRowImage(recordSchema);
int index = 0;
for (Object rowValue : rowImage) {
Value value = DefaultValueDeserializer.deserialize(rowValue);
rs.setValue(index, value);
index++;
}
}
return rs;
}