Example usage for com.amazonaws.services.dynamodbv2.model ScanRequest withScanFilter

List of usage examples for com.amazonaws.services.dynamodbv2.model ScanRequest withScanFilter

Introduction

In this page you can find the example usage for com.amazonaws.services.dynamodbv2.model ScanRequest withScanFilter.

Prototype


public ScanRequest withScanFilter(java.util.Map<String, Condition> scanFilter) 

Source Link

Document

This is a legacy parameter.

Usage

From source file:awslabs.lab51.SolutionCode.java

License:Open Source License

@Override
public List<Map<String, AttributeValue>> getImageItems(AmazonDynamoDBClient dynamoDbClient) {
    try {/*  w w  w  .  j  ava2s.c  om*/
        String tableName = System.getProperty("SESSIONTABLE");
        String keyPrefix = System.getProperty("PARAM3");

        ScanRequest scanRequest = new ScanRequest(tableName).withSelect("ALL_ATTRIBUTES");

        if (!keyPrefix.isEmpty()) {
            Map<String, Condition> scanFilter = new HashMap<String, Condition>();
            scanFilter.put("Key", new Condition().withAttributeValueList(new AttributeValue().withS(keyPrefix))
                    .withComparisonOperator("BEGINS_WITH"));
            scanRequest.withScanFilter(scanFilter);
        }

        return dynamoDbClient.scan(scanRequest).getItems();
    } catch (Exception ex) {
        labController.logMessageToPage("getImageItems Error: " + ex.getMessage() + ":" + ex.getStackTrace());
        return null;
    }
}

From source file:com.intuit.tank.persistence.databases.AmazonDynamoDatabaseDocApi.java

License:Open Source License

/**
 * @{inheritDoc//from   www .  j av a 2s .  co m
 */
@SuppressWarnings("unchecked")
@Override
public PagedDatabaseResult getPagedItems(String tableName, Object nextToken, String minRange, String maxRange,
        String instanceId, String jobId) {
    List<Item> ret = new ArrayList<Item>();
    Map<String, AttributeValue> lastKeyEvaluated = (Map<String, AttributeValue>) nextToken;
    ScanRequest scanRequest = new ScanRequest().withTableName(tableName);
    Map<String, Condition> conditions = new HashMap<String, Condition>();
    if (jobId != null) {
        Condition jobIdCondition = new Condition();
        jobIdCondition.withComparisonOperator(ComparisonOperator.EQ)
                .withAttributeValueList(new AttributeValue().withS(jobId));

        conditions.put(DatabaseKeys.JOB_ID_KEY.getShortKey(), jobIdCondition);
    }
    if (StringUtils.isNotBlank(instanceId)) {
        // add a filter
        Condition filter = new Condition();
        filter.withComparisonOperator(ComparisonOperator.EQ)
                .withAttributeValueList(new AttributeValue().withS(instanceId));
        scanRequest.addScanFilterEntry(DatabaseKeys.INSTANCE_ID_KEY.getShortKey(), filter);
    }
    Condition rangeKeyCondition = new Condition();
    if (minRange != null && maxRange != null) {
        rangeKeyCondition.withComparisonOperator(ComparisonOperator.BETWEEN.toString())
                .withAttributeValueList(new AttributeValue().withS(minRange))
                .withAttributeValueList(new AttributeValue().withS(maxRange));

    } else if (minRange != null) {
        rangeKeyCondition.withComparisonOperator(ComparisonOperator.GE.toString())
                .withAttributeValueList(new AttributeValue().withS(minRange));
    } else if (maxRange != null) {
        rangeKeyCondition.withComparisonOperator(ComparisonOperator.LT.toString())
                .withAttributeValueList(new AttributeValue().withS(maxRange));
    } else {
        rangeKeyCondition = null;
    }
    if (rangeKeyCondition != null) {
        conditions.put(DatabaseKeys.REQUEST_NAME_KEY.getShortKey(), rangeKeyCondition);
    }
    scanRequest.withScanFilter(conditions);
    scanRequest.withExclusiveStartKey(lastKeyEvaluated);

    ScanResult result = dynamoDb.scan(scanRequest);
    for (Map<String, AttributeValue> item : result.getItems()) {
        ret.add(getItemFromResult(item));
    }
    return new PagedDatabaseResult(ret, result.getLastEvaluatedKey());
}