public StreamRecord deserialize()

in src/main/java/software/amazon/qldb/tutorial/model/streams/StreamRecord.java [118:142]


        public StreamRecord deserialize(JsonParser jp, DeserializationContext dc)
                throws IOException {
            ObjectCodec codec = jp.getCodec();
            JsonNode node = codec.readTree(jp);
            String qldbStreamArn = node.get("qldbStreamArn").textValue();
            String recordType = node.get("recordType").textValue();
            JsonNode payloadJson = node.get("payload");
            StreamRecordPayload payload = null;

            switch (recordType) {
                case "CONTROL":
                    payload = codec.treeToValue(payloadJson, ControlRecord.class);
                    break;
                case "BLOCK_SUMMARY":
                    payload = codec.treeToValue(payloadJson, BlockSummaryRecord.class);
                    break;
                case "REVISION_DETAILS":
                    payload = codec.treeToValue(payloadJson, RevisionDetailsRecord.class);
                    break;
                default:
                    throw new RuntimeException("Unsupported record type: " + recordType);
            }

            return new StreamRecord(qldbStreamArn, recordType, payload);
        }