Package com.amazonaws.services.dynamodb.model

Examples of com.amazonaws.services.dynamodb.model.Condition


   * Builds range condition based on elements set
   * @return
   */
  private Condition buildRangeCondition(){
  KeySchemaElement kRangeSchema = getKeySchema().getRangeKeyElement();
  Condition rangeKeyCondition = null;
  if(kRangeSchema != null){
    rangeKeyCondition = new Condition();
    rangeKeyCondition.setComparisonOperator(ComparisonOperator.BETWEEN.toString());
    AttributeValue startVal = null, endVal = null;
    //startVal = buildKeyHashAttribute();
    if(kRangeSchema.getAttributeType().equals("S")){
      startVal = new AttributeValue().withS(getRangeKey(query.getStartKey()).toString());
      endVal = new AttributeValue().withS(getRangeKey(query.getEndKey()).toString());
    }
    else if (kRangeSchema.getAttributeType().equals("N")){
      startVal = new AttributeValue().withN(getRangeKey(query.getStartKey()).toString());
      endVal = new AttributeValue().withN(getRangeKey(query.getEndKey()).toString());
    }
    rangeKeyCondition.withAttributeValueList(startVal, endVal);
  }
  return rangeKeyCondition;
  }
View Full Code Here


        Map<String, Condition> filter = new HashMap<String, Condition>();
       
        AttributeValue value = new AttributeValue();
        value.setN(deleteEpoch + "");
       
        Condition c = new Condition();
        c.setComparisonOperator(ComparisonOperator.LT);
        c.setAttributeValueList(Collections.singletonList(value));
       
        filter.put("epoch", c);
       
        ScanRequest scan = new ScanRequest(MetastoreJanitor.tableName);
        scan.setScanFilter(filter);
View Full Code Here

        Map<String, Condition> v1Filter = null;
        if (v2Filter != null) {
            v1Filter = new HashMap<String, Condition>();
            for (String key : v2Filter.keySet()) {
                com.amazonaws.services.dynamodbv2.model.Condition v2Condition = v2Filter.get(key);
                Condition v1Condition = MapV2ConditionToV1(v2Condition);
                v1Filter.put(key, v1Condition);
            }
        }
        return v1Filter;
    }
View Full Code Here

    }

    public static Condition MapV2ConditionToV1(
            com.amazonaws.services.dynamodbv2.model.Condition v2Condition) {

        Condition v1Condition =
            new Condition()
                .withComparisonOperator(v2Condition.getComparisonOperator())
                ;
        List<AttributeValue> v1AttrValues = null;
        List<com.amazonaws.services.dynamodbv2.model.AttributeValue> v2AttrValues = v2Condition.getAttributeValueList();
        if (v2AttrValues != null) {
            v1AttrValues = new ArrayList<AttributeValue>();
            for (com.amazonaws.services.dynamodbv2.model.AttributeValue v2AttrValue : v2AttrValues) {
                v1AttrValues.add(MapV2AttributeValueToV1(v2AttrValue));
            }
        }
        v1Condition.setAttributeValueList(v1AttrValues);
        return v1Condition;
    }
View Full Code Here

  public Boolean supports(Class clazz) {
    return Condition.class.isAssignableFrom(clazz);
  }

  public List<Error> validate(Object target) {
    Condition instance = (Condition) target;
    List<Error> errors = ValidatorUtils.rejectIfNull(instance);
    if (errors.size() == 0) {
      errors.addAll(ValidatorUtils.rejectIfNullOrEmptyOrWhitespace(instance.getComparisonOperator()));
      errors.addAll(ValidatorUtils.rejectIfNotMatchRegex(instance.getComparisonOperator(), "^(EQ|NE|IN|LE|LT|GE|GT|BETWEEN|NOT_NULL|NULL|CONTAINS|NOT_CONTAINS|BEGINS_WITH)$"));
      if(instance.getAttributeValueList() != null) {
        for(AttributeValue value:instance.getAttributeValueList()) {
          errors.addAll(ValidatorUtils.invokeValidator(new PrimaryKeyValidator(), value));
        }
      }
    }
    return removeNulls(errors);
View Full Code Here

        for (String k : request.getScanFilter().keySet()) {
                    //Set this to true if one of conditions matches
                    boolean conditionMatches = false;
                    final AttributeValue attribute = item.get(k);
          if (attribute != null) {
            final Condition cond = request.getScanFilter().get(k);
                        final AttributeValue comp = cond.getAttributeValueList().isEmpty() ? null : cond.getAttributeValueList().get(0);
                        final int condSize = cond.getAttributeValueList().size();

                        if (cond.getComparisonOperator() == null) {
              throw new ResourceNotFoundException("There must be a comparisonOperator");
            }

                        if (cond.getComparisonOperator().equals("EQ")) {
              if (condSize == 1 && isComparableInScan(attribute, comp)) {
                conditionMatches = compareForScan(attribute, comp) == 0;
              }
            } else
            if (cond.getComparisonOperator().equals("LE")) {
              if (condSize == 1 && isComparableInScan(attribute, comp)) {
                                conditionMatches = compareForScan(attribute, comp) <= 0;
                }
            } else
            if (cond.getComparisonOperator().equals("LT")) {
              if (condSize == 1 && isComparableInScan(attribute, comp)) {
                                conditionMatches = compareForScan(attribute, comp) < 0;
              }
            } else
            if (cond.getComparisonOperator().equals("GE")) {
              if (condSize == 1 && isComparableInScan(attribute, comp)) {
                                conditionMatches = compareForScan(attribute, comp) >= 0;
                            }
            } else
            if (cond.getComparisonOperator().equals("GT")) {
              if (condSize == 1 && isComparableInScan(attribute, comp)) {
                                conditionMatches = compareForScan(attribute, comp) > 0;
              }
            } else
                        if (cond.getComparisonOperator().equals("BETWEEN")) {
                            if (condSize == 2) {
                                final AttributeValue comp2 = cond.getAttributeValueList().get(1);
                                if (isComparableInScan(attribute, comp) && isComparableInScan(attribute, comp2)) {
                                    conditionMatches = compareForScan(attribute, comp) >= 0 && compareForScan(attribute, comp2) <= 0;
                                }
                            }
                        } else
                        if (cond.getComparisonOperator().equals("BEGINS_WITH")) {
                            //TODO: Should we fail on AttributeValueType other than S (as per AWS DynamoDB docs)?
                            //TODO: Investigate how actual DynamoDB works
                            if (condSize == 1 && getAttributeValueType(attribute).equals(AttributeValueType.S) &&
                                    getAttributeValueType(comp).equals(AttributeValueType.S)) {
                                conditionMatches = attribute.getS().startsWith(comp.getS());
                            }
                        } else
                        if (cond.getComparisonOperator().equals("CONTAINS")) {
                            if (condSize == 1) {
                if (getAttributeValueType(item.get(k)).equals(AttributeValueType.S) || getAttributeValueType(item.get(k)).equals(AttributeValueType.N)) {
                  String value = getAttributeValueAsString(attribute);
                  String subs = getAttributeValueAsString(comp);
                                    conditionMatches = value.contains(subs);
                                }
                            }
                            //TODO: Check for sets!!!
                        } else
            if (cond.getComparisonOperator().equals("IN")) {
              for(AttributeValue value : cond.getAttributeValueList()){
                if (item.get(k).equals(value)){
                                    conditionMatches = true;
                                    break;
                                }
              }
View Full Code Here


public class ConditionJsonUnmarshaller implements Unmarshaller<Condition, JsonUnmarshallerContext> {

    public Condition unmarshall(JsonUnmarshallerContext context) throws Exception {
        Condition request = new Condition();

        int originalDepth = context.getCurrentDepth();
        int targetDepth = originalDepth + 1;

        JsonToken token = context.currentToken;
        if (token == null) token = context.nextToken();

       while (true) {
            if (token == null) break;
            if (token == JsonToken.FIELD_NAME || token == JsonToken.START_OBJECT) {
                if (context.testExpression("AttributeValueList", targetDepth)) {
                    request.setAttributeValueList(new ListUnmarshaller<AttributeValue>(AttributeValueJsonUnmarshaller.getInstance()).unmarshall(context));
                }
        if (context.testExpression("ComparisonOperator", targetDepth) || context.testExpression("ComparisonOperator", targetDepth - 1)) {
                    context.nextToken();
                    request.setComparisonOperator(SimpleTypeJsonUnmarshallers.StringJsonUnmarshaller.getInstance().unmarshall(context));
                }
            } else if (token == JsonToken.END_ARRAY || token == JsonToken.END_OBJECT) {
                if (context.getCurrentDepth() <= originalDepth) break;
            }
            token = context.nextToken();
View Full Code Here

  public void queryWithHashKeyAndRangeKeyConditionEQTest() {
        AttributeValue hashKey = setupTableWithSeveralItems();

        QueryRequest request = new QueryRequest().withTableName(tableName).withHashKeyValue(hashKey);

    Condition rangeKeyCondition = new Condition();
    List<AttributeValue> attributeValueList = new ArrayList<AttributeValue>();
//    attributeValueList.add(new AttributeValue().withN("1"));
    attributeValueList.add(createStringAttribute("Range2"));
    rangeKeyCondition.setAttributeValueList(attributeValueList);
    rangeKeyCondition.setComparisonOperator(ComparisonOperator.EQ);
    request.setRangeKeyCondition(rangeKeyCondition);
    QueryResult result = getClient().query(request);
    Assert.assertNotNull("Null result.", result);
    Assert.assertNotNull("No items returned.", result.getItems());
        Assert.assertEquals("Should return one item.", 1, result.getItems().size());
View Full Code Here

  public void queryWithHashKeyAndRangeKeyConditionLTTest() {
        AttributeValue hashKey = setupTableWithSeveralItems();

        QueryRequest request = new QueryRequest().withTableName(tableName).withHashKeyValue(hashKey);

    Condition rangeKeyCondition = new Condition();
    List<AttributeValue> attributeValueList = new ArrayList<AttributeValue>();
//    attributeValueList.add(new AttributeValue().withN("1"));
    attributeValueList.add(createStringAttribute("Range2"));
    rangeKeyCondition.setAttributeValueList(attributeValueList);
    rangeKeyCondition.setComparisonOperator(ComparisonOperator.LT);
    request.setRangeKeyCondition(rangeKeyCondition);
    QueryResult result = getClient().query(request);
    Assert.assertNotNull("Null result.", result);
    Assert.assertNotNull("No items returned.", result.getItems());
        Assert.assertEquals("Should return two items.", 2, result.getItems().size());
View Full Code Here

  public void queryWithHashKeyAndRangeKeyConditionLETest() {
        AttributeValue hashKey = setupTableWithSeveralItems();

        QueryRequest request = new QueryRequest().withTableName(tableName).withHashKeyValue(hashKey);

    Condition rangeKeyCondition = new Condition();
    List<AttributeValue> attributeValueList = new ArrayList<AttributeValue>();
//    attributeValueList.add(new AttributeValue().withN("1"));
    attributeValueList.add(createStringAttribute("Range2"));
    rangeKeyCondition.setAttributeValueList(attributeValueList);
    rangeKeyCondition.setComparisonOperator(ComparisonOperator.LE);
    request.setRangeKeyCondition(rangeKeyCondition);
    QueryResult result = getClient().query(request);
    Assert.assertNotNull("Null result.", result);
    Assert.assertNotNull("No items returned.", result.getItems());
        Assert.assertEquals("Should return three items.", 3, result.getItems().size());
View Full Code Here

TOP

Related Classes of com.amazonaws.services.dynamodb.model.Condition

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.