package org.socialsignin.spring.data.dynamodb.core; import java.util.List; import java.util.Map; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBQueryExpression; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBScanExpression; import com.amazonaws.services.dynamodbv2.datamodeling.KeyPair; import com.amazonaws.services.dynamodbv2.datamodeling.PaginatedQueryList; import com.amazonaws.services.dynamodbv2.datamodeling.PaginatedScanList; import com.amazonaws.services.dynamodbv2.model.QueryRequest; public interface DynamoDBOperations { public <T> int count(Class<T> domainClass,DynamoDBQueryExpression<T> queryExpression); public <T> int count(Class<T> domainClass,DynamoDBScanExpression scanExpression); public <T> int count(Class<T> clazz, QueryRequest mutableQueryRequest); public <T> PaginatedQueryList<T> query(Class<T> clazz, QueryRequest queryRequest); public <T> PaginatedQueryList<T> query(Class<T> domainClass,DynamoDBQueryExpression<T> queryExpression); public <T> PaginatedScanList<T> scan(Class<T> domainClass,DynamoDBScanExpression scanExpression); public <T> T load(Class<T> domainClass,Object hashKey,Object rangeKey); public <T> T load(Class<T> domainClass,Object hashKey); public Map<String, List<Object>> batchLoad(Map<Class<?>, List<KeyPair>> itemsToGet); public void save(Object entity); public void batchSave(List<?> entities); public void delete(Object entity); public void batchDelete(List<?> entities); public String getOverriddenTableName(String tableName); }