package implementations; import interfaces.MiddlewareInterface; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; import model.Filter; import model.Key; import model.Row; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; import com.amazonaws.services.dynamodbv2.model.ListTablesResult; public class DynamoDbHandler implements MiddlewareInterface { static AmazonDynamoDBClient CLIENT; static SimpleDateFormat dateFormatter = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); public static void connectToDatabase(String address) { try{ CLIENT = new AmazonDynamoDBClient(new ProfileCredentialsProvider()); } catch(Exception e){ } CLIENT.setEndpoint(address); } @Override public void connectToDatabase(String databaseHost, String databasePort) { } @Override public void alterTableAddColumn(String tableName, String columnName) { // TODO } @Override public void createNamespace(String namespaceName) { // TODO } @Override public void createTable(String tableName, String primaryKey) { DynamoDbQueryHandler.createTable(tableName, primaryKey); } @Override public void deleteTable(String tableName) { DynamoDbQueryHandler.deleteTable(tableName); } @Override public void insertRows(String tableName, List<Row> rows) { DynamoDbQueryHandler.insertItems(tableName, rows); } @Override public Row getRowByKey(String tableName, Key... combinedKey) { return DynamoDbQueryHandler.getRowByKey(tableName, combinedKey); } @Override @Deprecated public List<Row> getRowsByKeys( Map<String, ArrayList<Map<String, String>>> tableNamesWithKeys) { return DynamoDbQueryHandler.getItemsByKeys(tableNamesWithKeys); } @Override public List<Row> getRows(String tableName, String conditionalOperator, Filter... filters) { return DynamoDbQueryHandler.scanTable(tableName, filters, conditionalOperator); } @Override public List<String> getTableNames() { ListTablesResult result = DynamoDbQueryHandler.listTables(); return result.getTableNames(); } }