private void putImpl()

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);
	}