Skip to content

Commit d2c79a5

Browse files
author
Paulo Miguel Almeida
committed
add generateDeleteTableRequest method on DynamoDBMapper
1 parent a9eb319 commit d2c79a5

File tree

5 files changed

+70
-0
lines changed

5 files changed

+70
-0
lines changed

aws-java-sdk-dynamodb/src/main/java/com/amazonaws/services/dynamodbv2/datamodeling/AbstractDynamoDBMapper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.FailedBatch;
2121
import com.amazonaws.services.dynamodbv2.model.AttributeValue;
2222
import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
23+
import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest;
2324
import com.amazonaws.services.s3.model.Region;
2425

2526
/**
@@ -300,4 +301,8 @@ public CreateTableRequest generateCreateTableRequest(Class<?> clazz) {
300301
throw new UnsupportedOperationException();
301302
}
302303

304+
@Override
305+
public DeleteTableRequest generateDeleteTableRequest(Class<?> clazz) {
306+
throw new UnsupportedOperationException();
307+
}
303308
}

aws-java-sdk-dynamodb/src/main/java/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import com.amazonaws.services.dynamodbv2.model.ConditionalCheckFailedException;
5656
import com.amazonaws.services.dynamodbv2.model.ConditionalOperator;
5757
import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
58+
import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest;
5859
import com.amazonaws.services.dynamodbv2.model.DeleteItemRequest;
5960
import com.amazonaws.services.dynamodbv2.model.DeleteRequest;
6061
import com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue;
@@ -2675,4 +2676,10 @@ public CreateTableRequest generateCreateTableRequest(Class<?> clazz) {
26752676
return schemaParser.parseTablePojoToCreateTableRequest(
26762677
clazz, config, reflector, converter);
26772678
}
2679+
2680+
@Override
2681+
public DeleteTableRequest generateDeleteTableRequest(Class<?> clazz) {
2682+
return schemaParser.parseTablePojoToDeleteTableRequest(
2683+
clazz, config);
2684+
}
26782685
}

aws-java-sdk-dynamodb/src/main/java/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBTableSchemaParser.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperFieldModel.DynamoDBAttributeType;
2727
import com.amazonaws.services.dynamodbv2.model.AttributeDefinition;
2828
import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
29+
import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest;
2930
import com.amazonaws.services.dynamodbv2.model.GlobalSecondaryIndex;
3031
import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
3132
import com.amazonaws.services.dynamodbv2.model.KeyType;
@@ -105,6 +106,26 @@ CreateTableRequest parseTablePojoToCreateTableRequest(
105106
return createTableRequest;
106107
}
107108

109+
/**
110+
* Parse the given POJO class and return the DeleteTableRequest for the
111+
* DynamoDB table it represents.
112+
*
113+
* @param clazz
114+
* The POJO class.
115+
* @param config
116+
* The DynamoDBMapperConfig which contains the TableNameOverrides
117+
* parameter used to determine the table name.
118+
*/
119+
DeleteTableRequest parseTablePojoToDeleteTableRequest(
120+
Class<?> clazz,
121+
DynamoDBMapperConfig config) {
122+
123+
DeleteTableRequest deleteTableRequest = new DeleteTableRequest();
124+
deleteTableRequest.setTableName(DynamoDBMapper.internalGetTableName(clazz, null, config));
125+
126+
return deleteTableRequest;
127+
}
128+
108129
TableIndexesInfo parseTableIndexes(final Class<?> clazz, final DynamoDBReflector reflector) {
109130
synchronized(tableIndexesInfoCache) {
110131
if ( !tableIndexesInfoCache.containsKey(clazz) ) {

aws-java-sdk-dynamodb/src/main/java/com/amazonaws/services/dynamodbv2/datamodeling/IDynamoDBMapper.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.amazonaws.services.dynamodbv2.model.BatchGetItemRequest;
2626
import com.amazonaws.services.dynamodbv2.model.BatchWriteItemRequest;
2727
import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
28+
import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest;
2829
import com.amazonaws.services.dynamodbv2.model.PutItemRequest;
2930
import com.amazonaws.services.dynamodbv2.model.UpdateItemRequest;
3031
import com.amazonaws.services.s3.model.Region;
@@ -742,4 +743,11 @@ <T> QueryResultPage<T> queryPage(Class<T> clazz,
742743
*/
743744
CreateTableRequest generateCreateTableRequest(Class<?> clazz);
744745

746+
747+
/**
748+
* Parse the given POJO class and return the DeleteTableRequest for the DynamoDB table it
749+
* represents.
750+
*/
751+
DeleteTableRequest generateDeleteTableRequest(Class<?> clazz);
752+
745753
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.amazonaws.services.dynamodbv2.datamodeling;
2+
3+
import static org.junit.Assert.assertEquals;
4+
5+
import org.junit.Test;
6+
import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest;
7+
8+
public class DynamoDBMapperTest {
9+
10+
@Test
11+
public void testGenerateDeleteTableRequest(){
12+
String prefix = "DEV-";
13+
final String tableName = "OBJECTORMEXAMPLE";
14+
15+
DynamoDBMapperConfig.TableNameOverride tableNameOverride =
16+
DynamoDBMapperConfig.TableNameOverride.withTableNamePrefix(prefix);
17+
DynamoDBMapperConfig config = new DynamoDBMapperConfig(tableNameOverride);
18+
DynamoDBMapper dynamoDBMapper = new DynamoDBMapper(null, config);
19+
20+
// Create the simplest table as possible for our test purposes only
21+
@DynamoDBTable(tableName = tableName)
22+
class ObjectORMExample{}
23+
24+
// test
25+
DeleteTableRequest deleteTableRequest = dynamoDBMapper.generateDeleteTableRequest(ObjectORMExample.class);
26+
assertEquals(deleteTableRequest.getTableName(), prefix.concat(tableName));
27+
}
28+
29+
}

0 commit comments

Comments
 (0)