Guest User

Untitled

a guest
May 28th, 2018
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.83 KB | None | 0 0
  1. User user = new User();
  2. user.setAccountName(email.split("@")[0]); //default value, user can change it later
  3. user.setEmail(email);
  4. user.setPassword(password);
  5. user.setRegistrationDate(DateFormatUtils.format(new Date(), "dd.MM.yyyy"));
  6. user.setCharacters(new Character[1]);
  7. user.setStash(new InventoryItem[10]);
  8. dynamoDBMapper.save(user); //thread blocks here
  9.  
  10. @DynamoDBTable(tableName="Users")
  11. public class User {
  12. private String email;
  13. private String accountName;
  14. private String password;
  15. private String registrationDate;
  16. private Character[] characters;
  17. private InventoryItem[] stash;
  18.  
  19. @DynamoDBHashKey(attributeName = "email")
  20. public String getEmail() { return email; }
  21. public void setEmail(String email) { this.email = email; }
  22.  
  23. @DynamoDBAttribute(attributeName = "accountName")
  24. public String getAccountName() { return accountName; }
  25. public void setAccountName(String accountName) { this.accountName = accountName; }
  26.  
  27. @DynamoDBAttribute(attributeName="password")
  28. public String getPassword() { return password; }
  29. public void setPassword(String password) { this.password = password;}
  30.  
  31. @DynamoDBAttribute(attributeName = "registrationDate")
  32. public String getRegistrationDate() { return registrationDate; }
  33. public void setRegistrationDate(String registrationDate) { this.registrationDate = registrationDate; }
  34.  
  35. @DynamoDBTypeConverted(converter = CharacterConverter.class)
  36. @DynamoDBAttribute(attributeName = "characters")
  37. public Character[] getCharacters(){
  38. return this.characters;
  39. }
  40. @DynamoDBAttribute(attributeName = "characters")
  41. public void setCharacters(Character[] characters) {
  42. this.characters = characters;
  43. }
  44.  
  45. @DynamoDBTypeConverted(converter = InventoryItemConverter.class)
  46. @DynamoDBAttribute(attributeName = "stashItems")
  47. public InventoryItem[] getStash() {
  48. return this.stash;
  49. }
  50. @DynamoDBAttribute(attributeName = "stashItems")
  51. public void setStash(InventoryItem[] stash) {
  52. this.stash = stash;
  53. }
  54. }
  55.  
  56. public class InventoryItem {
  57. private int itemId;
  58. private boolean isInStash;
  59. private int slotNumber;
  60.  
  61. public int getItemId() { return itemId; }
  62. public void setItemId(int itemId) { this.itemId = itemId; }
  63.  
  64. public boolean getIsInStash() { return isInStash; }
  65. public void setIsInStash(boolean isInStash) { this.isInStash = isInStash; }
  66.  
  67. public int getSlotNumber() { return slotNumber; }
  68. public void setSlotNumber(int slotNumber) { this.slotNumber = slotNumber; }
  69. }
  70.  
  71. public class Character {
  72. private int characterSlotNumber;
  73. private int level;
  74. private int currentExp;
  75. private String characterClass;
  76. private InventoryItem[] inventoryItems;
  77.  
  78. private int baseHp;
  79. private int baseMp;
  80. private int baseDexterity;
  81. private int baseIntelligence;
  82. private int baseDefense;
  83. private int baseStamina;
  84. private int baseRegeneration;
  85. private int baseSpeed;
  86.  
  87. public int getCharacterSlotNumber() { return characterSlotNumber; }
  88. public void setCharacterSlotNumber(int characterSlotNumber) { this.characterSlotNumber = characterSlotNumber; }
  89.  
  90. public int getLevel() { return level; }
  91. public void setLevel(int level) { this.level = level; }
  92.  
  93. public int getCurrentExp() { return currentExp; }
  94. public void setCurrentExp(int currentExp) { this.currentExp = currentExp; }
  95.  
  96. public String getCharacterClass() { return characterClass; }
  97. public void setCharacterClass(String characterClass) { this.characterClass = characterClass;}
  98.  
  99. public InventoryItem[] getInventoryItems() { return this.inventoryItems; }
  100. public void setInventoryItems(InventoryItem[] inventoryItems) { this.inventoryItems = inventoryItems; }
  101.  
  102. public int getBaseHp() { return baseHp; }
  103. public void setBaseHp(int baseHp) { this.baseHp = baseHp; }
  104.  
  105. public int getBaseMp() { return baseMp; }
  106. public void setBaseMp(int baseMp) { this.baseMp = baseMp; }
  107.  
  108. public int getBaseDexterity() { return baseDexterity; }
  109. public void setBaseDexterity(int baseDexterity) { this.baseDexterity = baseDexterity; }
  110.  
  111. public int getBaseIntelligence() { return baseIntelligence; }
  112. public void setBaseIntelligence(int baseIntelligence) { this.baseIntelligence = baseIntelligence; }
  113.  
  114. public int getBaseDefense() { return baseDefense; }
  115. public void setBaseDefense(int baseDefense) { this.baseDefense = baseDefense; }
  116.  
  117. public int getBaseStamina() { return baseStamina; }
  118. public void setBaseStamina(int baseStamina) { this.baseStamina = baseStamina; }
  119.  
  120. public int getBaseRegeneration() { return baseRegeneration; }
  121. public void setBaseRegeneration(int baseRegeneration) { this.baseRegeneration = baseRegeneration; }
  122.  
  123. public int getBaseSpeed() { return baseSpeed; }
  124. public void setBaseSpeed(int baseSpeed) { this.baseSpeed = baseSpeed; }
  125. }
  126. }
  127.  
  128. public class InventoryItemConverter implements DynamoDBTypeConverter<String, InventoryItem[]> {
  129.  
  130. public String convert(InventoryItem[] inventoryItems) {
  131. StringBuilder stringBuilder = new StringBuilder();
  132. for (InventoryItem inventoryItem : inventoryItems) {
  133. stringBuilder
  134. .append(inventoryItem.getItemId()).append("-")
  135. .append(inventoryItem.getIsInStash()).append("-")
  136. .append(inventoryItem.getSlotNumber()).append("=");
  137. }
  138. return stringBuilder.toString();
  139. }
  140.  
  141. public InventoryItem[] unconvert(String s) {
  142. String[] inventoryItemsString = s.split("=");
  143. InventoryItem[] inventoryItems = new InventoryItem[inventoryItemsString.length];
  144. for (int i = 0; i < inventoryItemsString.length; i++) {
  145. String[] inventoryItemFields = inventoryItemsString[i].split("-");
  146. InventoryItem inventoryItem = new InventoryItem();
  147. inventoryItem.setItemId(Integer.valueOf(inventoryItemFields[0]));
  148. inventoryItem.setIsInStash(Boolean.valueOf(inventoryItemFields[1]));
  149. inventoryItem.setSlotNumber(Integer.valueOf(inventoryItemFields[2]));
  150. inventoryItems[i] = inventoryItem;
  151. }
  152. return inventoryItems;
  153. }
  154. }
  155.  
  156. public class CharacterConverter implements DynamoDBTypeConverter<String, Character[]> {
  157. public String convert(Character[] characters) {
  158. StringBuilder stringBuilder = new StringBuilder();
  159. InventoryItemConverter inventoryItemConverter = new InventoryItemConverter();
  160. for (Character character : characters) {
  161. stringBuilder
  162. .append(character.getCharacterSlotNumber()).append(",")
  163. .append(character.getLevel()).append(",")
  164. .append(character.getCurrentExp()).append(",")
  165. .append(character.getCharacterClass()).append(",")
  166. .append(inventoryItemConverter.convert(character.getInventoryItems())).append(",")
  167. .append(character.getBaseHp()).append(",")
  168. .append(character.getBaseMp()).append(",")
  169. .append(character.getBaseDexterity()).append(",")
  170. .append(character.getBaseIntelligence()).append(",")
  171. .append(character.getBaseDefense()).append(",")
  172. .append(character.getBaseStamina()).append(",")
  173. .append(character.getBaseRegeneration()).append(",")
  174. .append(character.getBaseSpeed()).append(";");
  175. }
  176. return stringBuilder.toString();
  177. }
  178.  
  179. public Character[] unconvert(String s) {
  180. InventoryItemConverter inventoryItemConverter = new InventoryItemConverter();
  181.  
  182. String[] charactersStrings = s.split(";");
  183. Character[] characters = new Character[charactersStrings.length];
  184. for (int i = 0; i < characters.length; i++) {
  185. String[] characterFields = charactersStrings[i].split(",");
  186. Character character = new Character();
  187. character.setCharacterSlotNumber(Integer.valueOf(characterFields[0]));
  188. character.setLevel(Integer.valueOf(characterFields[1]));
  189. character.setCurrentExp(Integer.valueOf(characterFields[2]));
  190. character.setCharacterClass(characterFields[3]);
  191. character.setInventoryItems(inventoryItemConverter.unconvert(characterFields[4]));
  192. character.setBaseHp(Integer.valueOf(characterFields[5]));
  193. character.setBaseMp(Integer.valueOf(characterFields[6]));
  194. character.setBaseDexterity(Integer.valueOf(characterFields[7]));
  195. character.setBaseIntelligence(Integer.valueOf(characterFields[8]));
  196. character.setBaseDefense(Integer.valueOf(characterFields[9]));
  197. character.setBaseStamina(Integer.valueOf(characterFields[10]));
  198. character.setBaseRegeneration(Integer.valueOf(characterFields[11]));
  199. character.setBaseSpeed(Integer.valueOf(characterFields[12]));
  200. }
  201. return characters;
  202. }
  203. }
Add Comment
Please, Sign In to add comment