Added Action to Better Handle Deserialization

Added an action property that allows the Python JSON module to
deserialize into more complex objects.  This simplifies the dispatch
behavior on the Python side.
This commit is contained in:
Pfifer, Justin 2016-10-03 11:41:22 -07:00
parent 4b7f8aa3be
commit b727608d22

View file

@ -14,13 +14,15 @@
*/
package com.amazonaws.services.kinesis.multilang.messages;
import java.util.Date;
import com.amazonaws.services.kinesis.clientlibrary.types.UserRecord;
import com.amazonaws.services.kinesis.model.Record;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
/**
* Class for encoding Record objects to json. Needed because Records have byte buffers for their data field which causes
* problems for the json library we're using.
@ -32,7 +34,9 @@ public class JsonFriendlyRecord {
private String partitionKey;
private String sequenceNumber;
private Date approximateArrivalTimestamp;
private Long subsequenceNumber;
private Long subSequenceNumber;
public static String ACTION = "record";
/**
* Default Constructor.
@ -51,10 +55,15 @@ public class JsonFriendlyRecord {
this.sequenceNumber = record.getSequenceNumber();
this.approximateArrivalTimestamp = record.getApproximateArrivalTimestamp();
if (record instanceof UserRecord) {
this.subsequenceNumber = ((UserRecord) record).getSubSequenceNumber();
this.subSequenceNumber = ((UserRecord) record).getSubSequenceNumber();
} else {
this.subsequenceNumber = null;
this.subSequenceNumber = null;
}
}
@JsonProperty
public String getAction() {
return ACTION;
}
}