package models; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import com.amazonaws.AmazonServiceException; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.PropertiesCredentials; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; import com.amazonaws.services.dynamodbv2.model.AttributeValue; import com.amazonaws.services.dynamodbv2.model.ComparisonOperator; import com.amazonaws.services.dynamodbv2.model.Condition; import com.amazonaws.services.dynamodbv2.model.GetItemRequest; import com.amazonaws.services.dynamodbv2.model.GetItemResult; import com.amazonaws.services.dynamodbv2.model.PutItemRequest; import com.amazonaws.services.dynamodbv2.model.PutItemResult; import com.amazonaws.services.dynamodbv2.model.QueryRequest; import com.amazonaws.services.dynamodbv2.model.QueryResult; public class DynamoDBSample { public static AmazonDynamoDBClient client; public static void main () { } public DynamoDBSample() throws Exception { createClient(); //System.out.println("helow"); //getVideoById("vid1"); //getVideoByParentId("vid1") ; //getVideoForHomePage() ; // Query replies posted in the past 15 days for a forum thread. //findRepliesInLast15DaysWithConfig("Reply", forumName, threadSubject); } public static void createClient() throws IOException { AWSCredentials credentials = new PropertiesCredentials( DynamoDBSample.class.getResourceAsStream("AwsCredentials.properties")); client = new AmazonDynamoDBClient(credentials); } public void createEntry (String name , String id, String parentId, String isParent) { String tableName = "twit-tube-db" ; Map<String, AttributeValue> item = new HashMap<String, AttributeValue>(); item.put("id", new AttributeValue().withS(id)); item.put("name", new AttributeValue().withS(name)); item.put("parentId", new AttributeValue().withS(parentId)); item.put("isParent", new AttributeValue().withS(isParent)); PutItemRequest putItemRequest = new PutItemRequest() .withTableName(tableName) .withItem(item); PutItemResult result = client.putItem(putItemRequest); } public static videoFile getVideoById(String id) { String tableName = "twit-tube-db" ; Map<String, AttributeValue> key = new HashMap<String, AttributeValue>(); key.put("id", new AttributeValue().withS(id)); GetItemRequest getItemRequest = new GetItemRequest() .withTableName(tableName) .withKey(key); //.withAttributesToGet(Arrays.asList("id","name", "parentId", "isParent")) GetItemResult result = client.getItem(getItemRequest); // Check the response. System.out.println("Printing item after retrieving it...."); return getName(result.getItem()); } public static List<videoFile> getVideoByParentId(String id) { String tableName = "twit-tube-db" ; Condition hashKeyCondition = new Condition() .withComparisonOperator(ComparisonOperator.EQ) .withAttributeValueList(new AttributeValue().withS(id)); HashMap<String, Condition> keyConditions = new HashMap<String, Condition>(); keyConditions.put("parentId", hashKeyCondition); QueryRequest queryRequest = new QueryRequest() .withTableName(tableName) .withIndexName("parentId-index") .withSelect("ALL_ATTRIBUTES") .withScanIndexForward(true); queryRequest.setKeyConditions(keyConditions); QueryResult result = client.query(queryRequest); ArrayList<videoFile> names = new ArrayList<videoFile> (); for (Map<String, AttributeValue> item : result.getItems()) { names.add(getName(item)); } return names ; } public static List<videoFile> getVideoForHomePage() { String tableName = "twit-tube-db" ; Condition hashKeyCondition = new Condition() .withComparisonOperator(ComparisonOperator.EQ) .withAttributeValueList(new AttributeValue().withS("y")); HashMap<String, Condition> keyConditions = new HashMap<String, Condition>(); keyConditions.put("isParent", hashKeyCondition); QueryRequest queryRequest = new QueryRequest() .withTableName(tableName) .withIndexName("isParent-index") .withSelect("ALL_ATTRIBUTES") .withScanIndexForward(true); queryRequest.setKeyConditions(keyConditions); QueryResult result = client.query(queryRequest); ArrayList<videoFile> names = new ArrayList<videoFile>() ; for (Map<String, AttributeValue> item : result.getItems()) { names.add(getName(item)); } return names; } private static videoFile getName(Map<String, AttributeValue> attributeList) { String fileName = "" ; String fileId = "" ; for (Map.Entry<String, AttributeValue> item : attributeList.entrySet()) { String attributeName = item.getKey(); AttributeValue value = item.getValue(); if ( attributeName.equals("name")){ fileName = value.getS() ; } if ( attributeName.equals("id")){ fileId = value.getS() ; } } videoFile vf = new videoFile(fileName, fileId) ; return vf; } }