Package | Description |
---|---|
com.datastax.dse.driver.api.querybuilder.schema |
This package effectively mirrors the Cassandra OSS Schema interfaces to allow extended schema and
query building for the DSE driver.
|
com.datastax.oss.driver.api.querybuilder | |
com.datastax.oss.driver.api.querybuilder.condition | |
com.datastax.oss.driver.api.querybuilder.delete | |
com.datastax.oss.driver.api.querybuilder.insert | |
com.datastax.oss.driver.api.querybuilder.relation | |
com.datastax.oss.driver.api.querybuilder.schema | |
com.datastax.oss.driver.api.querybuilder.select | |
com.datastax.oss.driver.api.querybuilder.update |
Modifier and Type | Method and Description |
---|---|
CreateDseAggregateEnd |
CreateDseAggregateEnd.withInitCond(Term term)
Adds INITCOND to the aggregate query.
|
Modifier and Type | Interface and Description |
---|---|
interface |
BindMarker
A bind marker in the query.
|
interface |
Literal
A value that will be appended as a CQL literal.
|
interface |
Raw
A raw CQL snippet that will be appended to the query as-is, without any syntax checking or
escaping.
|
Modifier and Type | Method and Description |
---|---|
static Term |
QueryBuilder.add(Term left,
Term right)
The sum of two terms, as in
WHERE k = left + right . |
static Term |
QueryBuilder.currentDate()
A call to the built-in
currentDate function as a term. |
static Term |
QueryBuilder.currentTime()
A call to the built-in
currentTime function as a term. |
static Term |
QueryBuilder.currentTimestamp()
A call to the built-in
currentTimestamp function as a term. |
static Term |
QueryBuilder.currentTimeUuid()
A call to the built-in
currentTimeUuid function as a term. |
static Term |
QueryBuilder.divide(Term left,
Term right)
The quotient of two terms, as in
WHERE k = left / right . |
static Term |
QueryBuilder.function(CqlIdentifier keyspaceId,
CqlIdentifier functionId,
Iterable<Term> arguments)
A function call as a term, as in
WHERE k = ks.f(arguments) . |
static Term |
QueryBuilder.function(CqlIdentifier keyspaceId,
CqlIdentifier functionId,
Term... arguments)
Var-arg equivalent of
QueryBuilder.function(CqlIdentifier, CqlIdentifier, Iterable) . |
static Term |
QueryBuilder.function(CqlIdentifier functionId,
Iterable<Term> arguments)
A function call as a term, as in
WHERE k = f(arguments) . |
static Term |
QueryBuilder.function(CqlIdentifier functionId,
Term... arguments)
Var-arg equivalent of
QueryBuilder.function(CqlIdentifier, Iterable) . |
static Term |
QueryBuilder.function(String functionName,
Iterable<Term> arguments)
Shortcut for
function(CqlIdentifier.fromCql(functionName), arguments) . |
static Term |
QueryBuilder.function(String keyspaceName,
String functionName,
Iterable<Term> arguments)
|
static Term |
QueryBuilder.function(String keyspaceName,
String functionName,
Term... arguments)
|
static Term |
QueryBuilder.function(String functionName,
Term... arguments)
Shortcut for
function(CqlIdentifier.fromCql(functionName), arguments) . |
static Term |
QueryBuilder.maxTimeUuid(Term argument)
A call to the built-in
maxTimeUuid function as a term. |
static Term |
QueryBuilder.minTimeUuid(Term argument)
A call to the built-in
minTimeUuid function as a term. |
static Term |
QueryBuilder.multiply(Term left,
Term right)
The product of two terms, as in
WHERE k = left * right . |
static Term |
QueryBuilder.negate(Term argument)
The opposite of a term, as in
WHERE k = -argument . |
static Term |
QueryBuilder.now()
A call to the built-in
now function as a term. |
static Term |
QueryBuilder.remainder(Term left,
Term right)
The remainder of two terms, as in
WHERE k = left % right . |
static Term |
QueryBuilder.subtract(Term left,
Term right)
The difference of two terms, as in
WHERE k = left - right . |
static Term |
QueryBuilder.toDate(Term argument)
A call to the built-in
toDate function as a term. |
static Term |
QueryBuilder.toTimestamp(Term argument)
A call to the built-in
toTimestamp function as a term. |
static Term |
QueryBuilder.toUnixTimestamp(Term argument)
A call to the built-in
toUnixTimestamp function as a term. |
static Term |
QueryBuilder.tuple(Iterable<? extends Term> components)
An ordered set of anonymous terms, as in
WHERE (a, b) = (1, 2) (on the right-hand
side). |
static Term |
QueryBuilder.tuple(Term... components)
Var-arg equivalent of
QueryBuilder.tuple(Iterable) . |
static Term |
QueryBuilder.typeHint(Term term,
DataType targetType)
Provides a type hint for an expression, as in
WHERE k = (double)1/3 . |
Modifier and Type | Method and Description |
---|---|
static Term |
QueryBuilder.add(Term left,
Term right)
The sum of two terms, as in
WHERE k = left + right . |
static Term |
QueryBuilder.divide(Term left,
Term right)
The quotient of two terms, as in
WHERE k = left / right . |
static Term |
QueryBuilder.function(CqlIdentifier keyspaceId,
CqlIdentifier functionId,
Term... arguments)
Var-arg equivalent of
QueryBuilder.function(CqlIdentifier, CqlIdentifier, Iterable) . |
static Term |
QueryBuilder.function(CqlIdentifier functionId,
Term... arguments)
Var-arg equivalent of
QueryBuilder.function(CqlIdentifier, Iterable) . |
static Term |
QueryBuilder.function(String keyspaceName,
String functionName,
Term... arguments)
|
static Term |
QueryBuilder.function(String functionName,
Term... arguments)
Shortcut for
function(CqlIdentifier.fromCql(functionName), arguments) . |
static Term |
QueryBuilder.maxTimeUuid(Term argument)
A call to the built-in
maxTimeUuid function as a term. |
static Term |
QueryBuilder.minTimeUuid(Term argument)
A call to the built-in
minTimeUuid function as a term. |
static Term |
QueryBuilder.multiply(Term left,
Term right)
The product of two terms, as in
WHERE k = left * right . |
static Term |
QueryBuilder.negate(Term argument)
The opposite of a term, as in
WHERE k = -argument . |
static Term |
QueryBuilder.remainder(Term left,
Term right)
The remainder of two terms, as in
WHERE k = left % right . |
static Term |
QueryBuilder.subtract(Term left,
Term right)
The difference of two terms, as in
WHERE k = left - right . |
static Term |
QueryBuilder.toDate(Term argument)
A call to the built-in
toDate function as a term. |
static Term |
QueryBuilder.toTimestamp(Term argument)
A call to the built-in
toTimestamp function as a term. |
static Term |
QueryBuilder.toUnixTimestamp(Term argument)
A call to the built-in
toUnixTimestamp function as a term. |
static Term |
QueryBuilder.tuple(Term... components)
Var-arg equivalent of
QueryBuilder.tuple(Iterable) . |
static Term |
QueryBuilder.typeHint(Term term,
DataType targetType)
Provides a type hint for an expression, as in
WHERE k = (double)1/3 . |
Modifier and Type | Method and Description |
---|---|
static Term |
QueryBuilder.function(CqlIdentifier keyspaceId,
CqlIdentifier functionId,
Iterable<Term> arguments)
A function call as a term, as in
WHERE k = ks.f(arguments) . |
static Term |
QueryBuilder.function(CqlIdentifier functionId,
Iterable<Term> arguments)
A function call as a term, as in
WHERE k = f(arguments) . |
static Term |
QueryBuilder.function(String functionName,
Iterable<Term> arguments)
Shortcut for
function(CqlIdentifier.fromCql(functionName), arguments) . |
static Term |
QueryBuilder.function(String keyspaceName,
String functionName,
Iterable<Term> arguments)
|
static Term |
QueryBuilder.tuple(Iterable<? extends Term> components)
An ordered set of anonymous terms, as in
WHERE (a, b) = (1, 2) (on the right-hand
side). |
Modifier and Type | Method and Description |
---|---|
static ConditionBuilder<Condition> |
Condition.element(CqlIdentifier columnId,
Term index)
Builds a condition on an element in a collection column for a conditional statement, as in
{@code DELETE...
|
static ConditionBuilder<Condition> |
Condition.element(String columnName,
Term index)
Shortcut for
element(CqlIdentifier.fromCql(columnName),
index) . |
default ConditionBuilder<SelfT> |
ConditionalStatement.ifElement(CqlIdentifier columnId,
Term index)
Adds an IF condition on an element in a collection column for a conditional statement, as in
{@code DELETE...
|
default ConditionBuilder<SelfT> |
ConditionalStatement.ifElement(String columnName,
Term index)
Shortcut for
element(CqlIdentifier.fromCql(columnName),
index) . |
Modifier and Type | Method and Description |
---|---|
default DeleteSelection |
DeleteSelection.element(CqlIdentifier collectionId,
Term index)
Deletes an element in a collection column, as in
DELETE m['key'] . |
default DeleteSelection |
DeleteSelection.element(String collectionName,
Term index)
Shortcut for
element(CqlIdentifier.fromCql(collectionName), index) . |
Modifier and Type | Method and Description |
---|---|
RegularInsert |
OngoingValues.value(CqlIdentifier columnId,
Term value)
Sets a value for a column, as in {@code INSERT INTO ...
|
default RegularInsert |
OngoingValues.value(String columnName,
Term value)
Shortcut for
value(CqlIdentifier.fromCql(columnName),
value) . |
Modifier and Type | Method and Description |
---|---|
default RegularInsert |
OngoingValues.values(Map<String,Term> newAssignments)
Shortcut for
OngoingValues.valuesByIds(Map) when the keys are plain strings. |
default RegularInsert |
OngoingValues.valuesByIds(Map<CqlIdentifier,Term> newAssignments)
Sets values for multiple columns in one call, as in {@code INSERT INTO ...
|
Modifier and Type | Method and Description |
---|---|
ResultT |
InRelationBuilder.build(String operator,
Term rightOperand) |
ResultT |
ArithmeticRelationBuilder.build(String operator,
Term rightOperand) |
default ResultT |
ColumnRelationBuilder.contains(Term term)
Builds a CONTAINS relation for the column.
|
default ResultT |
ColumnRelationBuilder.containsKey(Term term)
Builds a CONTAINS KEY relation for the column.
|
static Relation |
Relation.customIndex(CqlIdentifier indexId,
Term expression)
Builds a relation on a custom index.
|
static Relation |
Relation.customIndex(String indexName,
Term expression)
|
default ResultT |
InRelationBuilder.in(Term... alternatives)
Var-arg equivalent of
InRelationBuilder.in(Iterable) . |
default ResultT |
ArithmeticRelationBuilder.isEqualTo(Term rightOperand)
Builds an '=' relation with the given term.
|
default ResultT |
ArithmeticRelationBuilder.isGreaterThan(Term rightOperand)
Builds a '>' relation with the given term.
|
default ResultT |
ArithmeticRelationBuilder.isGreaterThanOrEqualTo(Term rightOperand)
Builds a '>=' relation with the given term.
|
default ResultT |
ArithmeticRelationBuilder.isLessThan(Term rightOperand)
Builds a '<' relation with the given term.
|
default ResultT |
ArithmeticRelationBuilder.isLessThanOrEqualTo(Term rightOperand)
Builds a '<=' relation with the given term.
|
default ResultT |
ArithmeticRelationBuilder.isNotEqualTo(Term rightOperand)
Builds a '!=' relation with the given term.
|
default ResultT |
ColumnRelationBuilder.like(Term term)
Builds a LIKE relation for the column.
|
static ColumnComponentRelationBuilder<Relation> |
Relation.mapValue(CqlIdentifier columnId,
Term index)
Builds a relation testing a value in a map (Cassandra 4 and above).
|
static ColumnComponentRelationBuilder<Relation> |
Relation.mapValue(String columnName,
Term index)
Shortcut for
mapValue(CqlIdentifier.fromCql(columnName),
index) |
default SelfT |
OngoingWhereClause.whereCustomIndex(CqlIdentifier indexId,
Term expression)
Adds a relation on a custom index.
|
default SelfT |
OngoingWhereClause.whereCustomIndex(String indexName,
Term expression)
|
default ColumnComponentRelationBuilder<SelfT> |
OngoingWhereClause.whereMapValue(CqlIdentifier columnId,
Term index)
Adds a relation testing a value in a map (Cassandra 4 and above).
|
default ColumnComponentRelationBuilder<SelfT> |
OngoingWhereClause.whereMapValue(String columnName,
Term index)
Shortcut for
whereMapValue(CqlIdentifier.fromCql(columnName), index) . |
Modifier and Type | Method and Description |
---|---|
default ResultT |
InRelationBuilder.in(Iterable<Term> alternatives)
Builds an IN relation where the arguments are the possible values, as in
IN (term1,
term2...) . |
Modifier and Type | Method and Description |
---|---|
CreateAggregateEnd |
CreateAggregateEnd.withInitCond(Term term)
Adds INITCOND to the aggregate query.
|
Modifier and Type | Method and Description |
---|---|
static Selector |
Selector.element(CqlIdentifier collectionId,
Term index)
Shortcut for element selection when the target collection is a simple column.
|
default Select |
OngoingSelection.element(CqlIdentifier collectionId,
Term index)
Shortcut for element selection when the target collection is a simple column.
|
static Selector |
Selector.element(Selector collection,
Term index)
Selects an element in a collection column, as in
SELECT m['key'] . |
default Select |
OngoingSelection.element(Selector collection,
Term index)
Selects an element in a collection column, as in
SELECT m['key'] . |
static Selector |
Selector.element(String collectionName,
Term index)
Shortcut for
element(CqlIdentifier.fromCql(collectionName), index) . |
default Select |
OngoingSelection.element(String collectionName,
Term index)
Shortcut for
element(CqlIdentifier.fromCql(collectionName), index) . |
static Selector |
Selector.range(CqlIdentifier collectionId,
Term left,
Term right)
Shortcut for slice selection when the target collection is a simple column.
|
default Select |
OngoingSelection.range(CqlIdentifier collectionId,
Term left,
Term right)
Shortcut for slice selection when the target collection is a simple column.
|
static Selector |
Selector.range(Selector collection,
Term left,
Term right)
Selects a slice in a collection column, as in
SELECT s[4..8] . |
default Select |
OngoingSelection.range(Selector collection,
Term left,
Term right)
Selects a slice in a collection column, as in
SELECT s[4..8] . |
static Selector |
Selector.range(String collectionName,
Term left,
Term right)
|
default Select |
OngoingSelection.range(String collectionName,
Term left,
Term right)
|
Modifier and Type | Method and Description |
---|---|
default UpdateWithAssignments |
OngoingAssignment.append(CqlIdentifier columnId,
Term suffix)
Appends to a collection column, as in
SET l=l+? . |
static Assignment |
Assignment.append(CqlIdentifier columnId,
Term suffix)
Appends to a collection column, as in
SET l=l+? . |
default UpdateWithAssignments |
OngoingAssignment.append(String columnName,
Term suffix)
Shortcut for
append(CqlIdentifier.fromCql(columnName),
suffix) . |
static Assignment |
Assignment.append(String columnName,
Term suffix)
Shortcut for
append(CqlIdentifier.fromCql(columnName),
suffix) . |
default UpdateWithAssignments |
OngoingAssignment.appendListElement(CqlIdentifier columnId,
Term suffix)
Appends a single element to a list column, as in
SET l=l+[?] . |
static Assignment |
Assignment.appendListElement(CqlIdentifier columnId,
Term suffix)
Appends a single element to a list column, as in
SET l=l+[?] . |
default UpdateWithAssignments |
OngoingAssignment.appendListElement(String columnName,
Term suffix)
|
static Assignment |
Assignment.appendListElement(String columnName,
Term suffix)
|
default UpdateWithAssignments |
OngoingAssignment.appendMapEntry(CqlIdentifier columnId,
Term key,
Term value)
Appends a single entry to a map column, as in
SET m=m+{?:?} . |
static Assignment |
Assignment.appendMapEntry(CqlIdentifier columnId,
Term key,
Term value)
Appends a single entry to a map column, as in
SET m=m+{?:?} . |
default UpdateWithAssignments |
OngoingAssignment.appendMapEntry(String columnName,
Term key,
Term value)
|
static Assignment |
Assignment.appendMapEntry(String columnName,
Term key,
Term value)
|
default UpdateWithAssignments |
OngoingAssignment.appendSetElement(CqlIdentifier columnId,
Term suffix)
Appends a single element to a set column, as in
SET s=s+{?} . |
static Assignment |
Assignment.appendSetElement(CqlIdentifier columnId,
Term suffix)
Appends a single element to a set column, as in
SET s=s+{?} . |
default UpdateWithAssignments |
OngoingAssignment.appendSetElement(String columnName,
Term suffix)
|
static Assignment |
Assignment.appendSetElement(String columnName,
Term suffix)
|
default UpdateWithAssignments |
OngoingAssignment.decrement(CqlIdentifier columnId,
Term amount)
Decrements a counter, as in
SET c-=? . |
static Assignment |
Assignment.decrement(CqlIdentifier columnId,
Term amount)
Decrements a counter, as in
SET c=c-? . |
default UpdateWithAssignments |
OngoingAssignment.decrement(String columnName,
Term amount)
Shortcut for
decrement(CqlIdentifier.fromCql(columnName), amount) |
static Assignment |
Assignment.decrement(String columnName,
Term amount)
Shortcut for
decrement(CqlIdentifier.fromCql(columnName), amount) |
default UpdateWithAssignments |
OngoingAssignment.increment(CqlIdentifier columnId,
Term amount)
Increments a counter, as in
SET c+=? . |
static Assignment |
Assignment.increment(CqlIdentifier columnId,
Term amount)
Increments a counter, as in
SET c=c+? . |
default UpdateWithAssignments |
OngoingAssignment.increment(String columnName,
Term amount)
Shortcut for
increment(CqlIdentifier.fromCql(columnName), amount) |
static Assignment |
Assignment.increment(String columnName,
Term amount)
Shortcut for
increment(CqlIdentifier.fromCql(columnName), amount) |
default UpdateWithAssignments |
OngoingAssignment.prepend(CqlIdentifier columnId,
Term prefix)
Prepends to a collection column, as in
SET l=[1,2,3]+l . |
static Assignment |
Assignment.prepend(CqlIdentifier columnId,
Term prefix)
Prepends to a collection column, as in
SET l=[1,2,3]+l . |
default UpdateWithAssignments |
OngoingAssignment.prepend(String columnName,
Term prefix)
Shortcut for
prepend(CqlIdentifier.fromCql(columnName),
prefix) . |
static Assignment |
Assignment.prepend(String columnName,
Term prefix)
Shortcut for
prepend(CqlIdentifier.fromCql(columnName),
prefix) . |
default UpdateWithAssignments |
OngoingAssignment.prependListElement(CqlIdentifier columnId,
Term suffix)
Prepends a single element to a list column, as in
SET l=[?]+l . |
static Assignment |
Assignment.prependListElement(CqlIdentifier columnId,
Term suffix)
Prepends a single element to a list column, as in
SET l=[?]+l . |
default UpdateWithAssignments |
OngoingAssignment.prependListElement(String columnName,
Term suffix)
|
static Assignment |
Assignment.prependListElement(String columnName,
Term suffix)
|
default UpdateWithAssignments |
OngoingAssignment.prependMapEntry(CqlIdentifier columnId,
Term key,
Term value)
Prepends a single entry to a map column, as in
SET m={?:?}+m . |
static Assignment |
Assignment.prependMapEntry(CqlIdentifier columnId,
Term key,
Term value)
Prepends a single entry to a map column, as in
SET m={?:?}+m . |
default UpdateWithAssignments |
OngoingAssignment.prependMapEntry(String columnName,
Term key,
Term value)
|
static Assignment |
Assignment.prependMapEntry(String columnName,
Term key,
Term value)
|
default UpdateWithAssignments |
OngoingAssignment.prependSetElement(CqlIdentifier columnId,
Term suffix)
Prepends a single element to a set column, as in
SET s={?}+s . |
static Assignment |
Assignment.prependSetElement(CqlIdentifier columnId,
Term suffix)
Prepends a single element to a set column, as in
SET s={?}+s . |
default UpdateWithAssignments |
OngoingAssignment.prependSetElement(String columnName,
Term suffix)
|
static Assignment |
Assignment.prependSetElement(String columnName,
Term suffix)
|
default UpdateWithAssignments |
OngoingAssignment.remove(CqlIdentifier columnId,
Term collectionToRemove)
Removes elements from a collection, as in
SET l=l-[1,2,3] . |
static Assignment |
Assignment.remove(CqlIdentifier columnId,
Term collectionToRemove)
Removes elements from a collection, as in
SET l=l-[1,2,3] . |
default UpdateWithAssignments |
OngoingAssignment.remove(String columnName,
Term collectionToRemove)
|
static Assignment |
Assignment.remove(String columnName,
Term collectionToRemove)
|
default UpdateWithAssignments |
OngoingAssignment.removeListElement(CqlIdentifier columnId,
Term suffix)
Removes a single element to a list column, as in
SET l=l-[?] . |
static Assignment |
Assignment.removeListElement(CqlIdentifier columnId,
Term suffix)
Removes a single element from a list column, as in
SET l=l-[?] . |
default UpdateWithAssignments |
OngoingAssignment.removeListElement(String columnName,
Term suffix)
|
static Assignment |
Assignment.removeListElement(String columnName,
Term suffix)
|
default UpdateWithAssignments |
OngoingAssignment.removeMapEntry(CqlIdentifier columnId,
Term key,
Term value)
Removes a single entry to a map column, as in
SET m=m-{?:?} . |
static Assignment |
Assignment.removeMapEntry(CqlIdentifier columnId,
Term key,
Term value)
Removes a single entry from a map column, as in
SET m=m-{?:?} . |
default UpdateWithAssignments |
OngoingAssignment.removeMapEntry(String columnName,
Term key,
Term value)
|
static Assignment |
Assignment.removeMapEntry(String columnName,
Term key,
Term value)
|
default UpdateWithAssignments |
OngoingAssignment.removeSetElement(CqlIdentifier columnId,
Term suffix)
Removes a single element to a set column, as in
SET s=s-{?} . |
static Assignment |
Assignment.removeSetElement(CqlIdentifier columnId,
Term suffix)
Removes a single element from a set column, as in
SET s=s-{?} . |
default UpdateWithAssignments |
OngoingAssignment.removeSetElement(String columnName,
Term suffix)
|
static Assignment |
Assignment.removeSetElement(String columnName,
Term suffix)
|
default UpdateWithAssignments |
OngoingAssignment.setColumn(CqlIdentifier columnId,
Term value)
Assigns a value to a column, as in
SET c=1 . |
static Assignment |
Assignment.setColumn(CqlIdentifier columnId,
Term value)
Assigns a value to a column, as in
SET c=? . |
default UpdateWithAssignments |
OngoingAssignment.setColumn(String columnName,
Term value)
Shortcut for
setColumn(CqlIdentifier.fromCql(columnName), value) . |
static Assignment |
Assignment.setColumn(String columnName,
Term value)
Shortcut for
setColumn(CqlIdentifier.fromCql(columnName), value) . |
default UpdateWithAssignments |
OngoingAssignment.setField(CqlIdentifier columnId,
CqlIdentifier fieldId,
Term value)
Assigns a value to a field of a UDT, as in
SET address.zip=? . |
static Assignment |
Assignment.setField(CqlIdentifier columnId,
CqlIdentifier fieldId,
Term value)
Assigns a value to a field of a UDT, as in
SET address.zip=? . |
default UpdateWithAssignments |
OngoingAssignment.setField(String columnName,
String fieldName,
Term value)
|
static Assignment |
Assignment.setField(String columnName,
String fieldName,
Term value)
|
default UpdateWithAssignments |
OngoingAssignment.setListValue(CqlIdentifier columnId,
Term index,
Term value)
Assigns a value to an index in a list column, as in
SET list[?]=? . |
static Assignment |
Assignment.setListValue(CqlIdentifier columnId,
Term index,
Term value)
Assigns a value to an index in a list column, as in
SET list[?]=? . |
default UpdateWithAssignments |
OngoingAssignment.setListValue(String columnName,
Term index,
Term value)
|
static Assignment |
Assignment.setListValue(String columnName,
Term index,
Term value)
|
default UpdateWithAssignments |
OngoingAssignment.setMapValue(CqlIdentifier columnId,
Term key,
Term value)
Assigns a value to an entry in a map column, as in
SET map[?]=? . |
static Assignment |
Assignment.setMapValue(CqlIdentifier columnId,
Term key,
Term value)
Assigns a value to an entry in a map column, as in
SET map[?]=? . |
default UpdateWithAssignments |
OngoingAssignment.setMapValue(String columnName,
Term key,
Term value)
|
static Assignment |
Assignment.setMapValue(String columnName,
Term key,
Term value)
|
Copyright © 2017–2022. All rights reserved.