Class ExpressionSpecBuilder
- All Implemented Interfaces:
Cloneable
This builder object is not thread-safe but you can reuse or build on (the specific states of) a builder by cloning it into separate instances for use in a concurrent environment.
Sample Usage 1: Conditional Updates with Expressions
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() // SET num1 = num1 + 20 .addUpdate( N("num1").set(N("num1").plus(20))) // SET string-attr = "string-value" .addUpdate( S("string-attr").set("string-value") ) // num2 BETWEEN 0 AND 100 .withCondition( N("num2").between(0, 100) ).buildForUpdate(); table.updateItem(HASH_KEY_NAME, "hashKeyValue", RANGE_KEY_NAME, 0, xspec);
Sample Usage 2: Conditional Updates with complex Condition Expression
Let's say you want to include a complex condition expression such as:
(attribute_not_exists(item_version) AND attribute_not_exists(config_id) AND attribute_not_exists(config_version)) OR (item_version invalid input: '<' 123) OR (item_version = 123 AND config_id invalid input: '<' 456) OR (item_version = 123 AND config_id = 456 AND config_version invalid input: '<' 999)Here is how:
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() // SET num1 = num1 + 20 .addUpdate( N("num1").set(N("num1").plus(20))) // SET string-attr = "string-value" .addUpdate( S("string-attr").set("string-value") ) // a complex condition expression (as shown above) .withCondition( // add explicit parenthesis parenthesize( attribute_not_exists("item_version") .and( attribute_not_exists("config_id") ) .and( attribute_not_exists("config_version") ) ).or( N("item_version").lt(123) ) .or( N("item_version").eq(123) .and( N("config_id").lt(456) ) ) .or( N("item_version").eq(123) .and( N("config_id").eq(456) ) .and( N("config_version").lt(999) )) ).buildForUpdate(); table.updateItem(HASH_KEY_NAME, "hashKeyValue", RANGE_KEY_NAME, 0, xspec);
Sample Usage 3: Scan with Filter Expression
Without ExpressionSpecBuilder, the code (using the DynamoDB Document API) could be something like:
ItemCollection<?> col = table.scan( "(#hk = :hashkeyAttrValue) AND (#rk BETWEEN :lo AND :hi)", new NameMap().with("#hk", HASH_KEY_NAME).with("#rk", RANGE_KEY_NAME), new ValueMap().withString(":hashkeyAttrValue", "allDataTypes") .withInt(":lo", 1).withInt(":hi", 10));In contrast, using ExpressionSpecBuilder:
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*;
...
ScanExpressionSpec xspec = new ExpressionSpecBuilder()
.withCondition(
S(HASH_KEY_NAME).eq("allDataTypes")
.and(N(RANGE_KEY_NAME).between(1, 10))
).buildForScan();
ItemCollectioninvalid input: '<'?> col = table.scan(xspec);
Sample Usage 4: Updates with SET, ADD, DELETE and REMOVE
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() .addUpdate(S("mapAttr.colors[0]").set("red")) .addUpdate(S("mapAttr.colors[1]").set("blue")) .addUpdate(L("mapAttr.members").set( L("mapAttr.members").listAppend("marry", "liza"))) .addUpdate(SS("mapAttr.countries").append("cn", "uk")) .addUpdate(SS("mapAttr.brands").delete("Facebook", "LinkedIn")) .addUpdate(attribute("mapAttr.foo").remove()) .buildForUpdate(); assertEquals("SET #0.#1[0] = :0, #0.#1[1] = :1, #0.#2 = list_append(#0.#2, :2) ADD #0.#3 :3 DELETE #0.#4 :4 REMOVE #0.#5", xspec.getUpdateExpression()); final String hashkey = "addRemoveDeleteColors"; table.updateItem(HASH_KEY_NAME, hashkey, RANGE_KEY_NAME, 0, xspec);
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a request-centric Expression Specification Builder that can be used to construct valid expressions, and the respective name maps and value maps, for various DynamoDB requests in a typeful manner. -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> ParenthesizedCondition
A short hand for callingparenthesize(Condition)
to explicitly parenthesize a given condition for building condition expressions.addProjection
(String path) Fluent API to add the given attribute to the list of projection of a request.addProjections
(String... paths) Fluent API to add the given attributes to the list of projection of a request.addUpdate
(UpdateAction updateAction) Fluent API to add the given Update expression for a request.static PathOperand
Returns a path operand that refers to an attribute of some unspecified data type; used for building expressions.static <T> FunctionCondition
attribute_exists
(PathOperand pathOperand) Returns a function condition (that evaluates to true if the attribute of the specified path operand exists) for building condition expression.static <T> FunctionCondition
attribute_exists
(String path) Returns a function condition (that evaluates to true if the attribute at the specified path exists) for building condition expression.static FunctionCondition
attribute_not_exists
(PathOperand pathOperand) Returns a function condition (that evaluates to true if the attribute of the specified path operand does not exist) for building condition expression.static FunctionCondition
attribute_not_exists
(String path) Returns a function condition (that evaluates to true if the attribute at the specified path does not exist) for building condition expression.static B
Creates a path operand that refers to a binary attribute for the purpose of building expressions.static BOOL
Creates a path operand that refers to a boolean attribute for the purpose of building expressions.static BS
Creates a path operand that refers to a binary-set attribute for the purpose of building expressions.Returns an expression specification for use in aDeleteItem
request to DynamoDB.Returns an expression specification for use in aGetItem
request to DynamoDB.Returns an expression specification for use in aPutItem
request to DynamoDB.Returns an expression specification for use in a query request to DynamoDB.Returns an expression specification for use in a scan request to DynamoDB.Returns an expression specification for use in anUpdateItem
request to DynamoDB.clone()
static IfNotExistsFunction
<BOOL> if_not_exists
(String path, boolean defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction
<B> if_not_exists
(String path, byte[] defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction
<BS> if_not_exists
(String path, byte[]... defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction
<N> if_not_exists
(String path, Number defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction
<NS> if_not_exists
(String path, Number... defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction
<S> if_not_exists
(String path, String defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction
<SS> if_not_exists
(String path, String... defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction
<B> if_not_exists
(String path, ByteBuffer defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction
<BS> if_not_exists
(String path, ByteBuffer... defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction
<L> if_not_exists
(String path, List<?> defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction
<M> if_not_exists
(String path, Map<String, ?> defaultValue) Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression.static L
Creates a path operand that refers to a list attribute for the purpose of building expressions.static <T> ListAppendFunction
list_append
(String path, List<? extends T> value) Returns aListAppend
object which represents a list_append(operand, operand) function call; used for building expression.static <T> ListAppendFunction
list_append
(String path, T value) Returns aListAppend
object which represents a list_append(operand, operand) function call; used for building expression.static <T> ListAppendFunction
list_append
(List<? extends T> value, String path) Returns aListAppend
object which represents a list_append(operand, operand) function call; used for building expression.static M
Creates a path operand that refers to a map attribute for the purpose of building expressions.static N
Creates a path operand that refers to a number attribute for the purpose of building expressions.static <T> NegationCondition
Returns a negation of the specified condition; used for building condition expression.static NS
Creates a path operand that refers to a number-set attribute for the purpose of building expressions.static NULL
Creates a path operand that refers to a NULL attribute for the purpose of building expressions.static <T> ParenthesizedCondition
parenthesize
(Condition condition) Returns an explicitly parenthesized condition, ie '(' condition ')' used in building condition expressions.static RemoveAction
Returns aRemoveAction
for removing the attribute with the specified path from an item; used for building update expression.static S
Creates a path operand that refers to a string attribute for the purpose of building expressions.static SS
Creates a path operand that refers to a string-set attribute for the purpose of building expressions.withCondition
(Condition condition) Fluent API to set the condition expression for a request.withKeyCondition
(Condition keyCondition)
-
Constructor Details
-
ExpressionSpecBuilder
public ExpressionSpecBuilder()Constructs a request-centric Expression Specification Builder that can be used to construct valid expressions, and the respective name maps and value maps, for various DynamoDB requests in a typeful manner. This includes Update expression, Condition expression (including Filter expression and Key Condition expression), and Projection expression. This class is the API entry point to this library.This builder object is not thread-safe but you can reuse or build on (the specific states of) a builder by cloning it into separate instances for use in a concurrent environment.
Sample Usage: Query with Filter Expression
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); QueryExpressionSpec xspec = new ExpressionSpecBuilder() .addProjections("numberAttr", "stringAttr") .withCondition(BOOL("booleanTrue").eq(true) .and(S("mapAttr.key1").eq("value1")) ).buildForQuery(); ItemCollectioninvalid input: '<'?> col = table.query(HASH_KEY_NAME, "allDataTypes", new RangeKeyCondition("range_key_name").between(1, 10), xspec);
Sample Usage: Conditional Updates with Expressions
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() // SET num1 = num1 + 20 .addUpdate( N("num1").set(N("num1").plus(20))) // SET string-attr = "string-value" .addUpdate( S("string-attr").set("string-value") ) // num2 BETWEEN 0 AND 100 .withCondition( N("num2").between(0, 100) ).buildForUpdate(); table.updateItem(HASH_KEY_NAME, "hashKeyValue", RANGE_KEY_NAME, 0, xspec);
Sample Usage: Scan with Filter Expression
Without ExpressionSpecBuilder, the code (using the DynamoDB Document API) could be something like:
ItemCollection<?> col = table.scan( "(#hk = :hashkeyAttrValue) AND (#rk BETWEEN :lo AND :hi)", new NameMap().with("#hk", HASH_KEY_NAME).with("#rk", RANGE_KEY_NAME), new ValueMap().withString(":hashkeyAttrValue", "allDataTypes") .withInt(":lo", 1).withInt(":hi", 10));
In contrast, using ExpressionSpecBuilder:import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... ScanExpressionSpec xspec = new ExpressionSpecBuilder() .withCondition( S(HASH_KEY_NAME).eq("allDataTypes") .and(N(RANGE_KEY_NAME).between(1, 10)) ).buildForScan(); ItemCollectioninvalid input: '<'?> col = table.scan(xspec);
Sample Usage: Conditional Updates with Expressions
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() // SET num1 = num1 + 20 .addUpdate( N("num1").set(N("num1").plus(20))) // SET string-attr = "string-value" .addUpdate( S("string-attr").set("string-value") ) // num2 BETWEEN 0 AND 100 .withCondition( N("num2").between(0, 100) ).buildForUpdate(); table.updateItem(HASH_KEY_NAME, "hashKeyValue", RANGE_KEY_NAME, 0, xspec);
Sample Usage: Conditional Updates with complex Condition Expression
Let's say you want to include a complex condition expression such as:
(attribute_not_exists(item_version) AND attribute_not_exists(config_id) AND attribute_not_exists(config_version)) OR (item_version invalid input: '<' 123) OR (item_version = 123 AND config_id invalid input: '<' 456) OR (item_version = 123 AND config_id = 456 AND config_version invalid input: '<' 999)
Here is how:import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() // SET num1 = num1 + 20 .addUpdate( N("num1").set(N("num1").plus(20))) // SET string-attr = "string-value" .addUpdate( S("string-attr").set("string-value") ) // a complex condition expression (as shown above) .withCondition( // add explicit parenthesis parenthesize( attribute_not_exists("item_version") .and( attribute_not_exists("config_id") ) .and( attribute_not_exists("config_version") ) ).or( N("item_version").lt(123) ) .or( N("item_version").eq(123) .and( N("config_id").lt(456) ) ) .or( N("item_version").eq(123) .and( N("config_id").eq(456) ) .and( N("config_version").lt(999) )) ).buildForUpdate(); table.updateItem(HASH_KEY_NAME, "hashKeyValue", RANGE_KEY_NAME, 0, xspec);
Sample Usage: Updates with SET, ADD, DELETE and REMOVE
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() .addUpdate(S("mapAttr.colors[0]").set("red")) .addUpdate(S("mapAttr.colors[1]").set("blue")) .addUpdate(L("mapAttr.members").set( L("mapAttr.members").listAppend("marry", "liza"))) .addUpdate(SS("mapAttr.countries").append("cn", "uk")) .addUpdate(SS("mapAttr.brands").delete("Facebook", "LinkedIn")) .addUpdate(attribute("mapAttr.foo").remove()) .buildForUpdate(); assertEquals("SET #0.#1[0] = :0, #0.#1[1] = :1, #0.#2 = list_append(#0.#2, :2) ADD #0.#3 :3 DELETE #0.#4 :4 REMOVE #0.#5", xspec.getUpdateExpression()); final String hashkey = "addRemoveDeleteColors"; table.updateItem(HASH_KEY_NAME, hashkey, RANGE_KEY_NAME, 0, xspec);
- See Also:
-
-
Method Details
-
addUpdate
Fluent API to add the given Update expression for a request.For example:
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... builder // SET num1 = num1 + 20 .addUpdate( N("num1").set(N("num1").plus(20))) // SET string-attr = "string-value" .addUpdate( S("string-attr").set("string-value") )
-
withCondition
Fluent API to set the condition expression for a request.For example:
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... builder.withCondition( // num2 BETWEEN 0 AND 100 ExpressionSpecBuilder.N("num2").between(0, 100) ) ...
Example of specifying a complex condition:import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... // A complex condition expression: // // (attribute_not_exists(item_version) AND attribute_not_exists(config_id) AND attribute_not_exists(config_version)) OR // (item_version invalid input: '<' 123) OR // (item_version = 123 AND config_id invalid input: '<' 456) OR // (item_version = 123 AND config_id = 456 AND config_version invalid input: '<' 999) // builder.withCondition( // add explicit parenthesis parenthesize( attribute_not_exists("item_version") .and( attribute_not_exists("config_id") ) .and( attribute_not_exists("config_version") ) ).or( N("item_version").lt(123) ) .or( N("item_version").eq(123) .and( N("config_id").lt(456) ) ) .or( N("item_version").eq(123) .and( N("config_id").eq(456) ) .and( N("config_version").lt(999) )) ) ...
-
withKeyCondition
-
addProjection
Fluent API to add the given attribute to the list of projection of a request. For example:builder.addProjection("binarySetAttribute") .addProjection("listAttr[0]") .addProjection("mapAttr.name") .addProjection("stringSetAttr") ;
-
addProjections
Fluent API to add the given attributes to the list of projection of a request. For example:builder.addProjections("binarySetAttribute", "listAttr[0]", "mapAttr.name", "stringSetAttr");
-
buildForDeleteItem
Returns an expression specification for use in aDeleteItem
request to DynamoDB. -
buildForGetItem
Returns an expression specification for use in aGetItem
request to DynamoDB. -
buildForQuery
Returns an expression specification for use in a query request to DynamoDB. -
buildForScan
Returns an expression specification for use in a scan request to DynamoDB. -
buildForUpdate
Returns an expression specification for use in anUpdateItem
request to DynamoDB. -
buildForPut
Returns an expression specification for use in aPutItem
request to DynamoDB. -
clone
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for number (N) attribute.
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for binary (B) attribute.
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for binary (B) attribute.
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for boolean (BOOL) attribute.
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for binary set (BS) attribute.
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for binary set (BS) attribute.
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for list (L) attribute.
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for map (M) attribute.
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for number set (NS) attribute.
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for string (S) attribute.
-
if_not_exists
Returns anIfNotExists
object which represents an if_not_exists(path, operand) function call; used for building expression."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."
- Parameters:
path
- document path to an attributedefaultValue
- default value if the attribute doesn't exist- Returns:
- an
IfNotExists
object for string set (SS) attribute.
-
list_append
Returns aListAppend
object which represents a list_append(operand, operand) function call; used for building expression."list_append(operand, operand) – This function evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands."
- Parameters:
path
- document path to a list attributevalue
- single value to be appended to the list attribute
-
list_append
Returns aListAppend
object which represents a list_append(operand, operand) function call; used for building expression."list_append(operand, operand) – This function evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands."
- Parameters:
path
- document path to a list attributevalue
- list of values to be appended to the list attribute
-
list_append
Returns aListAppend
object which represents a list_append(operand, operand) function call; used for building expression."list_append(operand, operand) – This function evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands."
- Parameters:
value
- list of values to be appended topath
- document path to a list attribute
-
attribute_exists
Returns a function condition (that evaluates to true if the attribute of the specified path operand exists) for building condition expression. -
attribute_exists
Returns a function condition (that evaluates to true if the attribute at the specified path exists) for building condition expression. -
attribute_not_exists
Returns a function condition (that evaluates to true if the attribute of the specified path operand does not exist) for building condition expression. -
attribute_not_exists
Returns a function condition (that evaluates to true if the attribute at the specified path does not exist) for building condition expression. -
not
Returns a negation of the specified condition; used for building condition expression. -
remove
Returns aRemoveAction
for removing the attribute with the specified path from an item; used for building update expression.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
attribute
Returns a path operand that refers to an attribute of some unspecified data type; used for building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
BOOL
Creates a path operand that refers to a boolean attribute for the purpose of building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
NULL
Creates a path operand that refers to a NULL attribute for the purpose of building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
B
Creates a path operand that refers to a binary attribute for the purpose of building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
N
Creates a path operand that refers to a number attribute for the purpose of building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
S
Creates a path operand that refers to a string attribute for the purpose of building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
BS
Creates a path operand that refers to a binary-set attribute for the purpose of building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
NS
Creates a path operand that refers to a number-set attribute for the purpose of building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
SS
Creates a path operand that refers to a string-set attribute for the purpose of building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
L
Creates a path operand that refers to a list attribute for the purpose of building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
M
Creates a path operand that refers to a map attribute for the purpose of building expressions.- Parameters:
path
- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
parenthesize
Returns an explicitly parenthesized condition, ie '(' condition ')' used in building condition expressions. -
_
A short hand for callingparenthesize(Condition)
to explicitly parenthesize a given condition for building condition expressions.
-