Class QueryApiMethodParser
java.lang.Object
org.evomaster.client.java.controller.dynamodb.parsers.QueryApiMethodParser
- All Implemented Interfaces:
DynamoDbApiMethodParser
Parser for DynamoDB
Query requests.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.evomaster.client.java.instrumentation.DynamoDbOperationNamesReturns the DynamoDB API method handled by this parser.protected QueryOperationbuildEqualsFromMap(Map<String, Object> values) Builds equality operations from a field/value map.protected Map<String,ParsedDynamoDbRequest> buildSingleTableRequestMap(String tableName, QueryOperation keyCondition, QueryOperation filterExpression) Builds a singleton result map for one table/request pair.protected QueryOperationcombine(List<QueryOperation> conditions, Function<List<QueryOperation>, QueryOperation> compositeBuilder) Combines a list of operations with a provided composite builder, skipping null entries.protected QueryOperationcombineWithAnd(List<QueryOperation> conditions) Combines a list of operations with AND semantics.protected QueryOperationparseExpression(String expression, Map<String, String> expressionAttributeNames, Map<String, Object> expressionAttributeValues) Parses a DynamoDB expression string into a query operation.protected QueryOperationparseKeyCondition(Object ddbRequest) Parses key equality conditions from DynamoDB request key fields.parseRequest(Object ddbRequest) Parses one request object into table-specific request expressions.readNameMap(Object ddbRequest) Reads and normalizes expression attribute names from DynamoDB request object.protected StringreadString(Object ddbRequest, String methodName) Reads a string-like value from a DDB request object via reflection.protected StringreadValidTableName(Object ddbRequest) Reads and validates the table name from the request.readValueMap(Object ddbRequest) Reads and converts expression attribute values from DynamoDB request object.
-
Field Details
-
METHOD_TABLE_NAME
- See Also:
-
METHOD_KEY_CONDITION_EXPRESSION
- See Also:
-
METHOD_FILTER_EXPRESSION
- See Also:
-
METHOD_KEY
- See Also:
-
METHOD_REQUEST_ITEMS
- See Also:
-
METHOD_KEYS
- See Also:
-
METHOD_CONDITION_EXPRESSION
- See Also:
-
METHOD_EXPRESSION_ATTRIBUTE_NAMES
- See Also:
-
METHOD_EXPRESSION_ATTRIBUTE_VALUES
- See Also:
-
-
Constructor Details
-
QueryApiMethodParser
public QueryApiMethodParser()
-
-
Method Details
-
apiMethodName
public org.evomaster.client.java.instrumentation.DynamoDbOperationNames apiMethodName()Returns the DynamoDB API method handled by this parser.- Returns:
- API method identifier
-
parseRequest
Parses one request object into table-specific request expressions.- Parameters:
ddbRequest- DynamoDB request object- Returns:
- a map of parsed requests by table name
-
parseExpression
protected QueryOperation parseExpression(String expression, Map<String, String> expressionAttributeNames, Map<String, Object> expressionAttributeValues) Parses a DynamoDB expression string into a query operation.- Parameters:
expression- expression stringexpressionAttributeNames- name placeholders mapexpressionAttributeValues- value placeholders map- Returns:
- parsed operation, or
null
-
parseKeyCondition
Parses key equality conditions from DynamoDB request key fields.- Parameters:
ddbRequest- DynamoDB request object- Returns:
- parsed key condition operation
-
buildEqualsFromMap
Builds equality operations from a field/value map.- Parameters:
values- field/value map- Returns:
- combined equality operation, or
null
-
combineWithAnd
Combines a list of operations with AND semantics.- Parameters:
conditions- conditions to combine- Returns:
- combined operation
-
combine
protected QueryOperation combine(List<QueryOperation> conditions, Function<List<QueryOperation>, QueryOperation> compositeBuilder) Combines a list of operations with a provided composite builder, skipping null entries.- Parameters:
conditions- operations to combinecompositeBuilder- builder for composite operation- Returns:
- combined operation, one operation, or
null
-
readNameMap
Reads and normalizes expression attribute names from DynamoDB request object.- Parameters:
ddbRequest- DynamoDB request object- Returns:
- normalized name map
-
readValueMap
Reads and converts expression attribute values from DynamoDB request object.- Parameters:
ddbRequest- DynamoDB request object- Returns:
- normalized value map
-
readString
Reads a string-like value from a DDB request object via reflection.- Parameters:
ddbRequest- DynamoDB request objectmethodName- accessor method name- Returns:
- string value, or
null
-
readValidTableName
Reads and validates the table name from the request.- Parameters:
ddbRequest- DynamoDB request object- Returns:
- table name, or
nullif blank/absent
-
buildSingleTableRequestMap
protected Map<String,ParsedDynamoDbRequest> buildSingleTableRequestMap(String tableName, QueryOperation keyCondition, QueryOperation filterExpression) Builds a singleton result map for one table/request pair.- Parameters:
tableName- table namekeyCondition- parsed key conditionfilterExpression- parsed filter or condition expression- Returns:
- singleton map or empty map when invalid
-