com.amazonaws.services.dynamodbv2.xspec.B Maven / Gradle / Ivy
Show all versions of aws-java-sdk-dynamodb Show documentation
/*
 * Copyright 2015-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.dynamodbv2.xspec;
import java.nio.ByteBuffer;
import java.util.LinkedList;
import java.util.List;
import org.apache.http.annotation.Immutable;
import com.amazonaws.annotation.Beta;
/**
 * A path operand that refers to a binary attribute in DynamoDB; used for building expressions.
 * 
 * Use {@link ExpressionSpecBuilder#B(String)} to instantiate this class.
 */
@Beta
@Immutable
public final class B extends PathOperand {
    B(String path) {
        super(path);
    }
    /**
     * Returns an InCondition (that evaluates to true if the value of the current
     * attribute is equal to any of the specified values) for building condition
     * expression.
     * 
     * @param values
     *            specified values. The number of values must be at least one
     *            and at most 100.
     */
    public InCondition in(ByteBuffer... values) {
        List list = new LinkedList();
        for (ByteBuffer v: values)
            list.add(new LiteralOperand(v));
        return new InCondition(this, list);
    }
    /**
     * Returns an InCondition (that evaluates to true if the value of the current
     * attribute is equal to any of the specified values) for building condition
     * expression.
     * 
     * @param values
     *            specified values. The number of values must be at least one
     *            and at most 100.
     */
    public InCondition in(byte[] ... values) {
        List list = new LinkedList();
        for (byte[] v: values)
            list.add(new LiteralOperand(v));
        return new InCondition(this, list);
    }
    /**
     * Returns an InCondition (that evaluates to true if the value of the current
     * attribute is equal to any of the values in the specified list) for
     * building condition expression.
     * 
     * @param values
     *            specified list of values. The number of values must be at
     *            least one and at most 100.
     */
    public InCondition inByteBufferList(List values) {
        List list = new LinkedList();
        for (ByteBuffer v: values)
            list.add(new LiteralOperand(v));
        return new InCondition(this, list);
    }
    /**
     * Returns an InCondition (that evaluates to true if the value of the current
     * attribute is equal to any of the values in the specified list) for
     * building condition expression.
     * 
     * @param values
     *            specified list of values. The number of values must be at
     *            least one and at most 100.
     */
    public InCondition inBytesList(List values) {
        List list = new LinkedList();
        for (byte[] v: values)
            list.add(new LiteralOperand(v));
        return new InCondition(this, list);
    }
    /**
     * Returns a comparator condition (that evaluates to true if the value of the current
     * attribute is equal to that of the specified attribute) for building
     * condition expression.
     */
    public ComparatorCondition eq(B that) {
        return new ComparatorCondition("=", this, that);
    }
    /**
     * Returns a comparator condition (that evaluates to true if the value of the
     * current attribute is equal to the specified value) for building condition
     * expression.
     */
    public ComparatorCondition eq(ByteBuffer value) {
        return new ComparatorCondition("=", this, new LiteralOperand(value));
    }
    /**
     * Returns a comparator condition (that evaluates to true if the value of the current
     * attribute is not equal to that of the specified attribute) for building
     * condition expression.
     */
    public ComparatorCondition ne(B that) {
        return new ComparatorCondition("<>", this, that);
    }
    /**
     * Returns a comparator condition (that evaluates to true if the value of the
     * current attribute is not equal to the specified value) for building
     * condition expression.
     */
    public ComparatorCondition ne(ByteBuffer value) {
        return new ComparatorCondition("<>", this, new LiteralOperand(value));
    }
    /**
     * Returns an IfNotExists object which represents an if_not_exists(path, operand) function call where path refers to that
     * of the current path operand; used for building expressions.
     * 
     * 
     * "if_not_exists (path, operand) – If the item does not contain an attribute 
     * at the specified path, then if_not_exists evaluates to operand; otherwise, 
     * it evaluates to path. You can use this function to avoid overwriting an 
     * attribute already present in the item."
     * 
     * 
     * @param defaultValue
     *            the default value that will be used as the operand to the
     *            if_not_exists function call.
     */
    public IfNotExistsFunction ifNotExists(ByteBuffer defaultValue) {
        return new IfNotExistsFunction(this, new LiteralOperand(defaultValue));
    }
    /**
     * Returns an IfNotExists object which represents an if_not_exists(path, operand) function call where path refers to that
     * of the current path operand; used for building expressions.
     * 
     * 
     * "if_not_exists (path, operand) – If the item does not contain an attribute 
     * at the specified path, then if_not_exists evaluates to operand; otherwise, 
     * it evaluates to path. You can use this function to avoid overwriting an 
     * attribute already present in the item."
     * 
     * 
     * @param defaultValue
     *            the default value (of another binary attribute) that will be
     *            used as the operand to the if_not_exists function call.
     */
    public IfNotExistsFunction ifNotExists(B defaultValue) {
        return ExpressionSpecBuilder.if_not_exists(this, defaultValue);
    }
    // SET operation
    /**
     * Returns a SetAction object used for building update
     * expression. If the attribute referred to by this path operand doesn't
     * exist, the returned object represents adding the attribute value of the
     * specified source path operand to an item. If the current attribute
     * already exists, the returned object represents the value replacement of
     * the current attribute by the attribute value of the specified source path
     * operand.
     */
    public SetAction set(B source) {
        return new SetAction(this, source);
    }
    /**
     * Returns a SetAction object used for building update
     * expression. If the attribute referred to by this path operand doesn't
     * exist, the returned object represents adding the specified value as an
     * attribute to an item. If the attribute referred to by this path operand
     * already exists, the returned object represents the value replacement of
     * the current attribute by the specified value.
     */
    public SetAction set(ByteBuffer value) {
        return new SetAction(this, new LiteralOperand(value));
    }
    /**
     * Returns a SetAction object used for building update
     * expression. If the attribute referred to by this path operand doesn't
     * exist, the returned object represents adding the specified value as an
     * attribute to an item. If the attribute referred to by this path operand
     * already exists, the returned object represents the value replacement of
     * the current attribute by the specified value.
     */
    public SetAction set(byte[] value) {
        return new SetAction(this, new LiteralOperand(value));
    }
    /**
     * Returns a SetAction object used for building update
     * expression. If the attribute referred to by this path operand doesn't
     * exist, the returned object represents adding the value of evaluating the
     * specified IfNotExists function as an attribute to an item.
     * If the attribute referred to by this path operand already exists, the
     * returned object represents the value replacement of the current attribute
     * by the value of evaluating the specified IfNotExists
     * function.
     */
    public SetAction set(IfNotExistsFunction ifNotExistsFunction) {
        return new SetAction(this, ifNotExistsFunction);
    }
    /**
     * Returns a comparator condition (that evaluates to true if the attribute value
     * referred to by this path operand is equal to the specified value) for
     * building condition expression.
     */
    public ComparatorCondition eq(byte[] value) {
        return new ComparatorCondition("=", this, new LiteralOperand(value));
    }
    /**
     * Returns a comparator condition (that evaluates to true if the attribute value
     * referred to by this path operand is not equal to that of the specified
     * path operand) for building condition expression.
     */
    public ComparatorCondition ne(byte[] value) {
        return new ComparatorCondition("<>", this, new LiteralOperand(value));
    }
    /**
     * Returns an IfNotExists object which represents an if_not_exists(path, operand) function call where path refers to that
     * of the current path operand; used for building expressions.
     * 
     * 
     * "if_not_exists (path, operand) – If the item does not contain an attribute 
     * at the specified path, then if_not_exists evaluates to operand; otherwise, 
     * it evaluates to path. You can use this function to avoid overwriting an 
     * attribute already present in the item."
     * 
     * 
     * @param defaultValue
     *            the default value that will be used as the operand to the
     *            if_not_exists function call.
     */
    public IfNotExistsFunction ifNotExists(byte[] defaultValue) {
        return new IfNotExistsFunction(this, new LiteralOperand(defaultValue));
    }
}