Example usage for com.amazonaws.services.dynamodbv2.model Condition setAttributeValueList

List of usage examples for com.amazonaws.services.dynamodbv2.model Condition setAttributeValueList

Introduction

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

Prototype


public void setAttributeValueList(java.util.Collection<AttributeValue> attributeValueList) 

Source Link

Document

One or more values to evaluate against the supplied attribute.

Usage

From source file:com.clicktravel.infrastructure.persistence.aws.dynamodb.DynamoDbTemplate.java

License:Apache License

private <T extends Item> Collection<T> executeQuery(final AttributeQuery query, final Class<T> itemClass) {
    final ItemConfiguration itemConfiguration = getItemConfiguration(itemClass);
    final com.amazonaws.services.dynamodbv2.model.Condition condition = new com.amazonaws.services.dynamodbv2.model.Condition();

    if (query.getCondition().getComparisonOperator() == Operators.NULL) {
        condition.setComparisonOperator(ComparisonOperator.NULL);
    } else if (query.getCondition().getComparisonOperator() == Operators.NOT_NULL) {
        condition.setComparisonOperator(ComparisonOperator.NOT_NULL);
    } else {//from ww w  .  jav a 2  s  .  c o  m
        if (query.getCondition().getComparisonOperator() == Operators.EQUALS) {
            condition.setComparisonOperator(ComparisonOperator.EQ);
        } else if (query.getCondition().getComparisonOperator() == Operators.LESS_THAN_OR_EQUALS) {
            condition.setComparisonOperator(ComparisonOperator.LE);
        } else if (query.getCondition().getComparisonOperator() == Operators.GREATER_THAN_OR_EQUALS) {
            condition.setComparisonOperator(ComparisonOperator.GE);
        }

        final Collection<AttributeValue> attributeValueList = new ArrayList<>();

        for (final String value : query.getCondition().getValues()) {
            if (value != null && !value.isEmpty()) {
                attributeValueList.add(new AttributeValue(value));
            }
        }

        if (attributeValueList.size() == 0) {
            return new ArrayList<>();
        }

        condition.setAttributeValueList(attributeValueList);
    }

    final Map<String, com.amazonaws.services.dynamodbv2.model.Condition> conditions = new HashMap<>();
    conditions.put(query.getAttributeName(), condition);
    final List<T> totalItems = new ArrayList<>();
    Map<String, AttributeValue> lastEvaluatedKey = null;
    final String tableName = databaseSchemaHolder.schemaName() + "." + itemConfiguration.tableName();
    if (itemConfiguration.hasIndexOn(query.getAttributeName())) {
        do {
            final String queryAttributeName = query.getAttributeName();
            final PrimaryKeyDefinition primaryKeyDefinition = itemConfiguration.primaryKeyDefinition();
            final String primaryKeyPropertyName = primaryKeyDefinition.propertyName();
            final boolean isPrimaryKeyQuery = queryAttributeName.equals(primaryKeyPropertyName);
            final QueryRequest queryRequest = new QueryRequest().withTableName(tableName)
                    .withKeyConditions(conditions).withExclusiveStartKey(lastEvaluatedKey);
            if (!isPrimaryKeyQuery) {
                queryRequest.withIndexName(queryAttributeName + "_idx");
            }

            final QueryResult queryResult;
            try {
                queryResult = amazonDynamoDbClient.query(queryRequest);
            } catch (final AmazonServiceException e) {
                throw new PersistenceResourceFailureException("Failure while attempting DynamoDb Query", e);
            }
            totalItems.addAll(marshallIntoObjects(itemClass, queryResult.getItems()));
            lastEvaluatedKey = queryResult.getLastEvaluatedKey();
        } while (lastEvaluatedKey != null);

    } else {
        logger.debug("Performing table scan with query: " + query);
        do {
            final ScanRequest scanRequest = new ScanRequest().withTableName(tableName)
                    .withScanFilter(conditions).withExclusiveStartKey(lastEvaluatedKey);
            final ScanResult scanResult;
            try {
                scanResult = amazonDynamoDbClient.scan(scanRequest);
            } catch (final AmazonServiceException e) {
                throw new PersistenceResourceFailureException("Failure while attempting DynamoDb Scan", e);
            }
            totalItems.addAll(marshallIntoObjects(itemClass, scanResult.getItems()));
            lastEvaluatedKey = scanResult.getLastEvaluatedKey();
        } while (lastEvaluatedKey != null);
    }

    return totalItems;
}

From source file:org.apache.hadoop.hive.dynamodb.filter.DynamoDBBinaryFilter.java

License:Open Source License

@Override
public Condition createCondition() {
    Condition condition = new Condition();
    condition.setComparisonOperator(operator.getDynamoDBName());
    List<AttributeValue> attributeValueList = new ArrayList<AttributeValue>();
    attributeValueList//ww  w . j  a  v a2  s  .c o  m
            .add(HiveDynamoDBTypeFactory.getTypeObjectFromHiveType(columnType).getAttributeValue(columnValue));
    condition.setAttributeValueList(attributeValueList);
    return condition;
}

From source file:org.apache.hadoop.hive.dynamodb.filter.DynamoDBNAryFilter.java

License:Open Source License

@Override
public Condition createCondition() {
    Condition condition = new Condition();
    condition.setComparisonOperator(operator.getDynamoDBName());

    List<AttributeValue> attributeValueList = new ArrayList<>();
    for (String value : columnValues) {
        attributeValueList/*from  ww  w.ja va 2s  .  co m*/
                .add(HiveDynamoDBTypeFactory.getTypeObjectFromHiveType(columnType).getAttributeValue(value));
    }
    condition.setAttributeValueList(attributeValueList);

    return condition;
}

From source file:org.iternine.jeppetto.dao.dynamodb.DynamoDBConstraint.java

License:Apache License

public Condition asCondition() {
    Condition condition = new Condition().withComparisonOperator(operator.getComparisonOperator());
    int argumentCount = operator.getArgumentCount();

    if (argumentCount == 1) {
        condition.withAttributeValueList(ConversionUtil.toAttributeValue(values[0]));
    } else if (argumentCount == 2) {
        condition.withAttributeValueList(ConversionUtil.toAttributeValue(values[0]),
                ConversionUtil.toAttributeValue(values[1]));
    } else if (argumentCount != 0) { // N arguments
        condition.setAttributeValueList(ConversionUtil.toAttributeValueList(values[0]));
    }/*  w  w  w .  jav  a 2 s  .  c  o  m*/

    return condition;
}