Java tutorial
/* * Copyright 2010-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.acer.batterycapacitydemo; import android.util.Log; import com.amazonaws.AmazonServiceException; import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.*; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest; import com.amazonaws.services.dynamodbv2.model.DescribeTableRequest; import com.amazonaws.services.dynamodbv2.model.DescribeTableResult; import com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException; import java.util.ArrayList; public class DynamoDBManager { private static final String TAG = "DynamoDBManager"; /* * Creates a table with the following attributes: Table name: testTableName * Hash key: userNo type N Read Capacity Units: 10 Write Capacity Units: 5 */ public static void createTable() { Log.d(TAG, "Create table called"); Log.d(TAG, "Skipped, using exist table"); } /* * Retrieves the table description and returns the table status as a string. */ public static String getTestTableStatus() { try { AmazonDynamoDBClient ddb = MainActivity.clientManager.ddb(); DescribeTableRequest request = new DescribeTableRequest() .withTableName(CognitoSyncClientManager.TEST_TABLE_NAME); DescribeTableResult result = ddb.describeTable(request); String status = result.getTable().getTableStatus(); return status == null ? "" : status; } catch (ResourceNotFoundException e) { } catch (AmazonServiceException ex) { MainActivity.clientManager.wipeCredentialsOnAuthError(ex); } return ""; } /* * Inserts ten users with userNo from 1 to 10 and random names. */ public static void uploadBatteryInfo() { AmazonDynamoDBClient ddb = MainActivity.clientManager.ddb(); DynamoDBMapper mapper = new DynamoDBMapper(ddb); try { UserPreference userPreference = new UserPreference(); String currentTime = String.valueOf(System.currentTimeMillis()); userPreference.setUniqueId(MainFragment.identityID + currentTime); userPreference.setUserId(MainFragment.identityID); userPreference.setTimestamp(currentTime); userPreference.setDeviceId(MainActivity.deviceId); userPreference.setBatteryInfo(BatteryLevel.batteryLevel); Log.d(TAG, "Inserting battery profile at " + currentTime); mapper.save(userPreference); Log.d(TAG, "Battery profile inserted"); } catch (AmazonServiceException ex) { Log.e(TAG, "Error battery profile"); MainActivity.clientManager.wipeCredentialsOnAuthError(ex); } } /* * Scans the table and returns the list of users. */ public static ArrayList<UserPreference> getUserList() { AmazonDynamoDBClient ddb = MainActivity.clientManager.ddb(); DynamoDBMapper mapper = new DynamoDBMapper(ddb); DynamoDBScanExpression scanExpression = new DynamoDBScanExpression(); try { PaginatedScanList<UserPreference> result = mapper.scan(UserPreference.class, scanExpression); ArrayList<UserPreference> resultList = new ArrayList<UserPreference>(); for (UserPreference up : result) { resultList.add(up); } return resultList; } catch (AmazonServiceException ex) { MainActivity.clientManager.wipeCredentialsOnAuthError(ex); } return null; } /* * Retrieves all of the attribute/value pairs for the specified user. */ public static UserPreference getUserPreference(String userId) { AmazonDynamoDBClient ddb = MainActivity.clientManager.ddb(); DynamoDBMapper mapper = new DynamoDBMapper(ddb); try { UserPreference userPreference = mapper.load(UserPreference.class, userId); return userPreference; } catch (AmazonServiceException ex) { MainActivity.clientManager.wipeCredentialsOnAuthError(ex); } return null; } /* * Updates one attribute/value pair for the specified user. */ public static void updateUserPreference(UserPreference updateUserPreference) { AmazonDynamoDBClient ddb = MainActivity.clientManager.ddb(); DynamoDBMapper mapper = new DynamoDBMapper(ddb); try { mapper.save(updateUserPreference); } catch (AmazonServiceException ex) { MainActivity.clientManager.wipeCredentialsOnAuthError(ex); } } /* * Deletes the specified user and all of its attribute/value pairs. */ public static void deleteUser(UserPreference deleteUserPreference) { AmazonDynamoDBClient ddb = MainActivity.clientManager.ddb(); DynamoDBMapper mapper = new DynamoDBMapper(ddb); try { mapper.delete(deleteUserPreference); } catch (AmazonServiceException ex) { MainActivity.clientManager.wipeCredentialsOnAuthError(ex); } } /* * Deletes the test table and all of its users and their attribute/value * pairs. */ public static void cleanUp() { AmazonDynamoDBClient ddb = MainActivity.clientManager.ddb(); DeleteTableRequest request = new DeleteTableRequest() .withTableName(CognitoSyncClientManager.TEST_TABLE_NAME); try { ddb.deleteTable(request); } catch (AmazonServiceException ex) { MainActivity.clientManager.wipeCredentialsOnAuthError(ex); } } @DynamoDBTable(tableName = CognitoSyncClientManager.TEST_TABLE_NAME) public static class UserPreference { private String uniqueId; private String userId; private String timeStamp; private String deviceId; private String batteryInfo; @DynamoDBHashKey(attributeName = "UniqueId") public String getUniqueId() { return uniqueId; } public void setUniqueId(String uniqueId) { this.uniqueId = uniqueId; } @DynamoDBAttribute(attributeName = "UserId") public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } @DynamoDBAttribute(attributeName = "TimeStamp") public String getTimeStamp() { return timeStamp; } public void setTimestamp(String timeStamp) { this.timeStamp = timeStamp; } @DynamoDBAttribute(attributeName = "DeviceId") public String getDeviceId() { return deviceId; } public void setDeviceId(String deviceId) { this.deviceId = deviceId; } @DynamoDBAttribute(attributeName = "BatteryInfo") public String getBatteryInfo() { return batteryInfo; } public void setBatteryInfo(String batteryInfo) { this.batteryInfo = batteryInfo; } } }