in src/main/java/com/awsblog/queueing/sdk/QueueSdkClient.java [312:344]
private void putImpl(Shipment shipment, boolean useUpsert) {
Utils.throwIfNullObject(shipment, "Shipment object cannot be NULL!");
int version = 0;
// check if already present
Shipment retrievedShipment = this.dbMapper.load(Shipment.class, shipment.getId());
if (!Utils.checkIfNullObject(retrievedShipment)) {
if (useUpsert) {
version = retrievedShipment.getSystemInfo().getVersion();
}
else {
this.dbMapper.delete(retrievedShipment);
}
}
OffsetDateTime odt = OffsetDateTime.now(ZoneOffset.UTC);
SystemInfo system = new SystemInfo(shipment.getId());
system.setInQueue(false);
system.setSelectedFromQueue(false);
system.setStatus(shipment.getSystemInfo().getStatus());
system.setCreationTimestamp(odt.toString());
system.setLastUpdatedTimestamp(odt.toString());
system.setVersion(version + 1);
shipment.setSystemInfo(system);
// store it in DynamoDB
this.dbMapper.save(shipment);
}