From b771b30cc531d578ca6fcc8b244495b4664b1dea Mon Sep 17 00:00:00 2001 From: Sandor Dargo Date: Fri, 20 Oct 2017 22:17:32 +0200 Subject: [PATCH] refactor: DRY GetItemRequest creation in AwsItem --- src/main/java/com/jcabi/dynamo/AwsItem.java | 29 ++++++++++++--------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/jcabi/dynamo/AwsItem.java b/src/main/java/com/jcabi/dynamo/AwsItem.java index d11394f..19fcf89 100644 --- a/src/main/java/com/jcabi/dynamo/AwsItem.java +++ b/src/main/java/com/jcabi/dynamo/AwsItem.java @@ -115,12 +115,7 @@ public boolean has(final String attr) throws IOException { if (!has) { final AmazonDynamoDB aws = this.credentials.aws(); try { - final GetItemRequest request = new GetItemRequest(); - request.setTableName(this.name); - request.setAttributesToGet(Collections.singletonList(attr)); - request.setKey(this.attributes.only(this.keys)); - request.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL); - request.setConsistentRead(true); + final GetItemRequest request = this.makeItemRequestFor(attr); final long start = System.currentTimeMillis(); final GetItemResult result = aws.getItem(request); has = result.getItem().get(attrib) != null; @@ -154,12 +149,7 @@ public AttributeValue get(final String attr) throws IOException { if (value == null) { final AmazonDynamoDB aws = this.credentials.aws(); try { - final GetItemRequest request = new GetItemRequest(); - request.setTableName(this.name); - request.setAttributesToGet(Collections.singletonList(attrib)); - request.setKey(this.attributes.only(this.keys)); - request.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL); - request.setConsistentRead(true); + final GetItemRequest request = this.makeItemRequestFor(attrib); final long start = System.currentTimeMillis(); final GetItemResult result = aws.getItem(request); value = result.getItem().get(attrib); @@ -241,4 +231,19 @@ public Frame frame() { return this.frm; } + /** + * Makes a GetItemRequest for a given attribute. + * @param attr Attribute name + * @return GetItemRequest + */ + private GetItemRequest makeItemRequestFor(final String attr) { + final GetItemRequest request = new GetItemRequest(); + request.setTableName(this.name); + request.setAttributesToGet(Collections.singletonList(attr)); + request.setKey(this.attributes.only(this.keys)); + request.setReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL); + request.setConsistentRead(true); + return request; + } + }