/* * Copyright 2015-2023 Amazon Technologies, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://aws.amazon.com/apache2.0 * * 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.util.LinkedList; import java.util.List; import com.amazonaws.annotation.Immutable; import com.amazonaws.annotation.Beta; /** * A path operand that refers to a string attribute in DynamoDB; used for building expressions. *
* Use {@link ExpressionSpecBuilder#S(String)} to instantiate this class.
*/
@Beta
@Immutable
public final class S extends PathOperand {
S(String path) { super(path); }
/**
* Returns a function condition (that evaluates to true if the value of the
* current attribute begins with the specified operand) for building
* condition expression.
*/
public FunctionCondition beginsWith(String value) {
return new FunctionCondition("begins_with", this, new LiteralOperand(value));
}
/**
* Returns a function condition (that evaluates to true if the value of the
* current attribute contains the specified substring) for building
* condition expression.
*/
public FunctionCondition contains(String substring) {
return new FunctionCondition("contains", this, new LiteralOperand(substring));
}
/**
* 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(S 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 that of the specified attribute) for building
* condition expression.
*/
public ComparatorCondition ne(S that) {
return new ComparatorCondition("<>", this, that);
}
/**
* Returns a comparator condition (that evaluates to true if the value of the current
* attribute is less than or equal to the specified value) for building
* condition expression.
*/
public ComparatorCondition le(String value) {
return new ComparatorCondition("<=", this, new LiteralOperand(value));
}
/**
* Returns a comparator condition (that evaluates to true if the value of the current
* attribute is less than or equal to that of the specified attribute) for building
* condition expression.
*/
public ComparatorCondition le(S that) {
return new ComparatorCondition("<=", this, that);
}
/**
* Returns a comparator condition (that evaluates to true if the value of the current
* attribute is less than the specified value) for building
* condition expression.
*/
public ComparatorCondition lt(String value) {
return new ComparatorCondition("<", this, new LiteralOperand(value));
}
/**
* Returns a comparator condition (that evaluates to true if the value of the current
* attribute is less than that of the specified attribute) for building
* condition expression.
*/
public ComparatorCondition lt(S that) {
return new ComparatorCondition("<", this, that);
}
/**
* Returns a comparator condition (that evaluates to true if the value of the current
* attribute is greater than or equal to the specified value) for building
* condition expression.
*/
public ComparatorCondition ge(String value) {
return new ComparatorCondition(">=", this, new LiteralOperand(value));
}
/**
* Returns a comparator condition (that evaluates to true if the value of the current
* attribute is greater than or equal to that of the specified attribute) for building
* condition expression.
*/
public ComparatorCondition ge(S that) {
return new ComparatorCondition(">=", this, that);
}
/**
* Returns a comparator condition (that evaluates to true if the value of the current
* attribute is greater than the specified value) for building
* condition expression.
*/
public ComparatorCondition gt(String value) {
return new ComparatorCondition(">", this, new LiteralOperand(value));
}
/**
* Returns a comparator condition (that evaluates to true if the value of the current
* attribute is greater than that of the specified attribute) for building
* condition expression.
*/
public ComparatorCondition gt(S that) {
return new ComparatorCondition(">", this, that);
}
/**
* Returns a BetweenCondition
that represents a BETWEEN comparison (that evaluates to true if the value of the
* current attribute is greater than or equal to the given low value, and
* less than or equal to the given high value) for building condition
* expression.
*/
public BetweenCondition between(String low, String high) {
return new BetweenCondition(this,
new LiteralOperand(low),
new LiteralOperand(high));
}
/**
* Returns an IfNotExists
object which represents an if_not_exists(path, operand) function call where path refers to that
* of the current attribute; 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
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(S 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(String 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(IfNotExistsFunctionIfNotExists
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