List of usage examples for com.amazonaws.services.dynamodbv2.model Condition setAttributeValueList
public void setAttributeValueList(java.util.Collection<AttributeValue> attributeValueList)
One or more values to evaluate against the supplied attribute.
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; }