All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.dynamodbv2.model.QueryResult Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2011-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not
 * use this file except in compliance with the License. A copy of the License is
 * located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.dynamodbv2.model;

import java.io.Serializable;

/**
 * 

* Represents the output of a Query operation. *

*/ public class QueryResult implements Serializable, Cloneable { /** *

* An array of item attributes that match the query criteria. Each element * in this array consists of an attribute name and the value for that * attribute. *

*/ private java.util.List> items; /** *

* The number of items in the response. *

*

* If you used a QueryFilter in the request, then Count is the * number of items returned after the filter was applied, and * ScannedCount is the number of matching items before the filter was * applied. *

*

* If you did not use a filter in the request, then Count and * ScannedCount are the same. *

*/ private Integer count; /** *

* The number of items evaluated, before any QueryFilter is applied. * A high ScannedCount value with few, or no, Count results * indicates an inefficient Query operation. For more information, * see Count and ScannedCount in the Amazon DynamoDB Developer * Guide. *

*

* If you did not use a filter in the request, then ScannedCount is * the same as Count. *

*/ private Integer scannedCount; /** *

* The primary key of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding * this value in the new request. *

*

* If LastEvaluatedKey is empty, then the "last page" of results has * been processed and there is no more data to be retrieved. *

*

* If LastEvaluatedKey is not empty, it does not necessarily mean * that there is more data in the result set. The only way to know when you * have reached the end of the result set is when LastEvaluatedKey is * empty. *

*/ private java.util.Map lastEvaluatedKey; private ConsumedCapacity consumedCapacity; /** *

* An array of item attributes that match the query criteria. Each element * in this array consists of an attribute name and the value for that * attribute. *

* * @return An array of item attributes that match the query criteria. Each * element in this array consists of an attribute name and the value * for that attribute. */ public java.util.List> getItems() { return items; } /** *

* An array of item attributes that match the query criteria. Each element * in this array consists of an attribute name and the value for that * attribute. *

* * @param items * An array of item attributes that match the query criteria. Each * element in this array consists of an attribute name and the value * for that attribute. */ public void setItems( java.util.Collection> items) { if (items == null) { this.items = null; return; } this.items = new java.util.ArrayList>( items); } /** *

* An array of item attributes that match the query criteria. Each element * in this array consists of an attribute name and the value for that * attribute. *

*

* NOTE: This method appends the values to the existing list (if * any). Use {@link #setItems(java.util.Collection)} or * {@link #withItems(java.util.Collection)} if you want to override the * existing values. *

* * @param items * An array of item attributes that match the query criteria. Each * element in this array consists of an attribute name and the value * for that attribute. * @return Returns a reference to this object so that method calls can be * chained together. */ public QueryResult withItems(java.util.Map... items) { if (this.items == null) { setItems(new java.util.ArrayList>( items.length)); } for (java.util.Map ele : items) { this.items.add(ele); } return this; } /** *

* An array of item attributes that match the query criteria. Each element * in this array consists of an attribute name and the value for that * attribute. *

* * @param items * An array of item attributes that match the query criteria. Each * element in this array consists of an attribute name and the value * for that attribute. * @return Returns a reference to this object so that method calls can be * chained together. */ public QueryResult withItems( java.util.Collection> items) { setItems(items); return this; } /** *

* The number of items in the response. *

*

* If you used a QueryFilter in the request, then Count is the * number of items returned after the filter was applied, and * ScannedCount is the number of matching items before the filter was * applied. *

*

* If you did not use a filter in the request, then Count and * ScannedCount are the same. *

* * @param count * The number of items in the response.

*

* If you used a QueryFilter in the request, then Count * is the number of items returned after the filter was applied, and * ScannedCount is the number of matching items before the * filter was applied. *

*

* If you did not use a filter in the request, then Count and * ScannedCount are the same. */ public void setCount(Integer count) { this.count = count; } /** *

* The number of items in the response. *

*

* If you used a QueryFilter in the request, then Count is the * number of items returned after the filter was applied, and * ScannedCount is the number of matching items before the filter was * applied. *

*

* If you did not use a filter in the request, then Count and * ScannedCount are the same. *

* * @return The number of items in the response.

*

* If you used a QueryFilter in the request, then * Count is the number of items returned after the filter was * applied, and ScannedCount is the number of matching items * before the filter was applied. *

*

* If you did not use a filter in the request, then Count and * ScannedCount are the same. */ public Integer getCount() { return this.count; } /** *

* The number of items in the response. *

*

* If you used a QueryFilter in the request, then Count is the * number of items returned after the filter was applied, and * ScannedCount is the number of matching items before the filter was * applied. *

*

* If you did not use a filter in the request, then Count and * ScannedCount are the same. *

* * @param count * The number of items in the response.

*

* If you used a QueryFilter in the request, then Count * is the number of items returned after the filter was applied, and * ScannedCount is the number of matching items before the * filter was applied. *

*

* If you did not use a filter in the request, then Count and * ScannedCount are the same. * @return Returns a reference to this object so that method calls can be * chained together. */ public QueryResult withCount(Integer count) { setCount(count); return this; } /** *

* The number of items evaluated, before any QueryFilter is applied. * A high ScannedCount value with few, or no, Count results * indicates an inefficient Query operation. For more information, * see Count and ScannedCount in the Amazon DynamoDB Developer * Guide. *

*

* If you did not use a filter in the request, then ScannedCount is * the same as Count. *

* * @param scannedCount * The number of items evaluated, before any QueryFilter is * applied. A high ScannedCount value with few, or no, * Count results indicates an inefficient Query * operation. For more information, see Count and ScannedCount in the Amazon DynamoDB Developer * Guide.

*

* If you did not use a filter in the request, then * ScannedCount is the same as Count. */ public void setScannedCount(Integer scannedCount) { this.scannedCount = scannedCount; } /** *

* The number of items evaluated, before any QueryFilter is applied. * A high ScannedCount value with few, or no, Count results * indicates an inefficient Query operation. For more information, * see Count and ScannedCount in the Amazon DynamoDB Developer * Guide. *

*

* If you did not use a filter in the request, then ScannedCount is * the same as Count. *

* * @return The number of items evaluated, before any QueryFilter is * applied. A high ScannedCount value with few, or no, * Count results indicates an inefficient Query * operation. For more information, see Count and ScannedCount in the Amazon DynamoDB Developer * Guide.

*

* If you did not use a filter in the request, then * ScannedCount is the same as Count. */ public Integer getScannedCount() { return this.scannedCount; } /** *

* The number of items evaluated, before any QueryFilter is applied. * A high ScannedCount value with few, or no, Count results * indicates an inefficient Query operation. For more information, * see Count and ScannedCount in the Amazon DynamoDB Developer * Guide. *

*

* If you did not use a filter in the request, then ScannedCount is * the same as Count. *

* * @param scannedCount * The number of items evaluated, before any QueryFilter is * applied. A high ScannedCount value with few, or no, * Count results indicates an inefficient Query * operation. For more information, see Count and ScannedCount in the Amazon DynamoDB Developer * Guide.

*

* If you did not use a filter in the request, then * ScannedCount is the same as Count. * @return Returns a reference to this object so that method calls can be * chained together. */ public QueryResult withScannedCount(Integer scannedCount) { setScannedCount(scannedCount); return this; } /** *

* The primary key of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding * this value in the new request. *

*

* If LastEvaluatedKey is empty, then the "last page" of results has * been processed and there is no more data to be retrieved. *

*

* If LastEvaluatedKey is not empty, it does not necessarily mean * that there is more data in the result set. The only way to know when you * have reached the end of the result set is when LastEvaluatedKey is * empty. *

* * @return The primary key of the item where the operation stopped, * inclusive of the previous result set. Use this value to start a * new operation, excluding this value in the new request.

*

* If LastEvaluatedKey is empty, then the "last page" of * results has been processed and there is no more data to be * retrieved. *

*

* If LastEvaluatedKey is not empty, it does not necessarily * mean that there is more data in the result set. The only way to * know when you have reached the end of the result set is when * LastEvaluatedKey is empty. */ public java.util.Map getLastEvaluatedKey() { return lastEvaluatedKey; } /** *

* The primary key of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding * this value in the new request. *

*

* If LastEvaluatedKey is empty, then the "last page" of results has * been processed and there is no more data to be retrieved. *

*

* If LastEvaluatedKey is not empty, it does not necessarily mean * that there is more data in the result set. The only way to know when you * have reached the end of the result set is when LastEvaluatedKey is * empty. *

* * @param lastEvaluatedKey * The primary key of the item where the operation stopped, inclusive * of the previous result set. Use this value to start a new * operation, excluding this value in the new request.

*

* If LastEvaluatedKey is empty, then the "last page" of * results has been processed and there is no more data to be * retrieved. *

*

* If LastEvaluatedKey is not empty, it does not necessarily * mean that there is more data in the result set. The only way to * know when you have reached the end of the result set is when * LastEvaluatedKey is empty. */ public void setLastEvaluatedKey( java.util.Map lastEvaluatedKey) { this.lastEvaluatedKey = lastEvaluatedKey; } /** *

* The primary key of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding * this value in the new request. *

*

* If LastEvaluatedKey is empty, then the "last page" of results has * been processed and there is no more data to be retrieved. *

*

* If LastEvaluatedKey is not empty, it does not necessarily mean * that there is more data in the result set. The only way to know when you * have reached the end of the result set is when LastEvaluatedKey is * empty. *

* * @param lastEvaluatedKey * The primary key of the item where the operation stopped, inclusive * of the previous result set. Use this value to start a new * operation, excluding this value in the new request.

*

* If LastEvaluatedKey is empty, then the "last page" of * results has been processed and there is no more data to be * retrieved. *

*

* If LastEvaluatedKey is not empty, it does not necessarily * mean that there is more data in the result set. The only way to * know when you have reached the end of the result set is when * LastEvaluatedKey is empty. * @return Returns a reference to this object so that method calls can be * chained together. */ public QueryResult withLastEvaluatedKey( java.util.Map lastEvaluatedKey) { setLastEvaluatedKey(lastEvaluatedKey); return this; } public QueryResult addLastEvaluatedKeyEntry(String key, AttributeValue value) { if (null == this.lastEvaluatedKey) { this.lastEvaluatedKey = new java.util.HashMap(); } if (this.lastEvaluatedKey.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.lastEvaluatedKey.put(key, value); return this; } /** * Removes all the entries added into LastEvaluatedKey. <p> Returns a * reference to this object so that method calls can be chained together. */ public QueryResult clearLastEvaluatedKeyEntries() { this.lastEvaluatedKey = null; return this; } /** * @param consumedCapacity */ public void setConsumedCapacity(ConsumedCapacity consumedCapacity) { this.consumedCapacity = consumedCapacity; } /** * @return */ public ConsumedCapacity getConsumedCapacity() { return this.consumedCapacity; } /** * @param consumedCapacity * @return Returns a reference to this object so that method calls can be * chained together. */ public QueryResult withConsumedCapacity(ConsumedCapacity consumedCapacity) { setConsumedCapacity(consumedCapacity); return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getItems() != null) sb.append("Items: " + getItems() + ","); if (getCount() != null) sb.append("Count: " + getCount() + ","); if (getScannedCount() != null) sb.append("ScannedCount: " + getScannedCount() + ","); if (getLastEvaluatedKey() != null) sb.append("LastEvaluatedKey: " + getLastEvaluatedKey() + ","); if (getConsumedCapacity() != null) sb.append("ConsumedCapacity: " + getConsumedCapacity()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof QueryResult == false) return false; QueryResult other = (QueryResult) obj; if (other.getItems() == null ^ this.getItems() == null) return false; if (other.getItems() != null && other.getItems().equals(this.getItems()) == false) return false; if (other.getCount() == null ^ this.getCount() == null) return false; if (other.getCount() != null && other.getCount().equals(this.getCount()) == false) return false; if (other.getScannedCount() == null ^ this.getScannedCount() == null) return false; if (other.getScannedCount() != null && other.getScannedCount().equals(this.getScannedCount()) == false) return false; if (other.getLastEvaluatedKey() == null ^ this.getLastEvaluatedKey() == null) return false; if (other.getLastEvaluatedKey() != null && other.getLastEvaluatedKey().equals( this.getLastEvaluatedKey()) == false) return false; if (other.getConsumedCapacity() == null ^ this.getConsumedCapacity() == null) return false; if (other.getConsumedCapacity() != null && other.getConsumedCapacity().equals( this.getConsumedCapacity()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getItems() == null) ? 0 : getItems().hashCode()); hashCode = prime * hashCode + ((getCount() == null) ? 0 : getCount().hashCode()); hashCode = prime * hashCode + ((getScannedCount() == null) ? 0 : getScannedCount() .hashCode()); hashCode = prime * hashCode + ((getLastEvaluatedKey() == null) ? 0 : getLastEvaluatedKey() .hashCode()); hashCode = prime * hashCode + ((getConsumedCapacity() == null) ? 0 : getConsumedCapacity() .hashCode()); return hashCode; } @Override public QueryResult clone() { try { return (QueryResult) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException( "Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy