Example usage for com.amazonaws.services.dynamodbv2.xspec ExpressionSpecBuilder M

List of usage examples for com.amazonaws.services.dynamodbv2.xspec ExpressionSpecBuilder M

Introduction

In this page you can find the example usage for com.amazonaws.services.dynamodbv2.xspec ExpressionSpecBuilder M.

Prototype

public static M M(String path) 

Source Link

Document

Creates a path operand that refers to a <a href= "http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_AttributeValue.html" >map attribute</a> for the purpose of building expressions.

Usage

From source file:com.github.fge.jsonpatch.PathValueOperation.java

License:LGPL

@Override
public void applyToBuilder(ExpressionSpecBuilder builder) {
    String attributePath = pathGenerator.apply(path);
    JsonNodeType type = value.getNodeType();
    switch (type) {
    case NUMBER:/*from  w  w w  .j a  va 2s.c o  m*/
        builder.addUpdate(ExpressionSpecBuilder.N(attributePath).set(value.numberValue()));
        break;

    case STRING:
        builder.addUpdate(ExpressionSpecBuilder.S(attributePath).set(value.textValue()));
        break;

    case BOOLEAN:
        builder.addUpdate(ExpressionSpecBuilder.BOOL(attributePath).set(value.booleanValue()));
        break;

    case NULL:
        builder.addUpdate(ExpressionSpecBuilder.NULL(attributePath).set());
        break;

    case ARRAY:
        if (value.iterator().hasNext() == false) {
            builder.addUpdate(ExpressionSpecBuilder.L(attributePath).set(Collections.emptyList()));
        } else {
            JsonNode repNode = value.iterator().next();
            if (repNode.isNumber()) {
                builder.addUpdate(ExpressionSpecBuilder.NS(attributePath).set(convertNumberList(value)));
            } else if (repNode.isTextual()) {
                builder.addUpdate(ExpressionSpecBuilder.SS(attributePath).set(convertStringList(value)));
            } else {
                throw new UnsupportedOperationException("Not implemented yet: " + repNode.getNodeType());
            }
        }
        break;

    case OBJECT:
        Map<String, ?> m = toMap(value);
        builder.addUpdate(ExpressionSpecBuilder.M(attributePath).set(m));
        break;

    default:
        // TODO Auto-generated method stub
        throw new UnsupportedOperationException("Not implemented yet: " + type);
    }
}