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:
parent
4b7f8aa3be
commit
b727608d22
1 changed files with 14 additions and 5 deletions
|
|
@ -14,13 +14,15 @@
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.multilang.messages;
|
package com.amazonaws.services.kinesis.multilang.messages;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.types.UserRecord;
|
import com.amazonaws.services.kinesis.clientlibrary.types.UserRecord;
|
||||||
import com.amazonaws.services.kinesis.model.Record;
|
import com.amazonaws.services.kinesis.model.Record;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
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
|
* 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.
|
* problems for the json library we're using.
|
||||||
|
|
@ -32,7 +34,9 @@ public class JsonFriendlyRecord {
|
||||||
private String partitionKey;
|
private String partitionKey;
|
||||||
private String sequenceNumber;
|
private String sequenceNumber;
|
||||||
private Date approximateArrivalTimestamp;
|
private Date approximateArrivalTimestamp;
|
||||||
private Long subsequenceNumber;
|
private Long subSequenceNumber;
|
||||||
|
|
||||||
|
public static String ACTION = "record";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default Constructor.
|
* Default Constructor.
|
||||||
|
|
@ -51,10 +55,15 @@ public class JsonFriendlyRecord {
|
||||||
this.sequenceNumber = record.getSequenceNumber();
|
this.sequenceNumber = record.getSequenceNumber();
|
||||||
this.approximateArrivalTimestamp = record.getApproximateArrivalTimestamp();
|
this.approximateArrivalTimestamp = record.getApproximateArrivalTimestamp();
|
||||||
if (record instanceof UserRecord) {
|
if (record instanceof UserRecord) {
|
||||||
this.subsequenceNumber = ((UserRecord) record).getSubSequenceNumber();
|
this.subSequenceNumber = ((UserRecord) record).getSubSequenceNumber();
|
||||||
} else {
|
} else {
|
||||||
this.subsequenceNumber = null;
|
this.subSequenceNumber = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@JsonProperty
|
||||||
|
public String getAction() {
|
||||||
|
return ACTION;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue