Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- User user = new User();
- user.setAccountName(email.split("@")[0]); //default value, user can change it later
- user.setEmail(email);
- user.setPassword(password);
- user.setRegistrationDate(DateFormatUtils.format(new Date(), "dd.MM.yyyy"));
- user.setCharacters(new Character[1]);
- user.setStash(new InventoryItem[10]);
- dynamoDBMapper.save(user); //thread blocks here
- @DynamoDBTable(tableName="Users")
- public class User {
- private String email;
- private String accountName;
- private String password;
- private String registrationDate;
- private Character[] characters;
- private InventoryItem[] stash;
- @DynamoDBHashKey(attributeName = "email")
- public String getEmail() { return email; }
- public void setEmail(String email) { this.email = email; }
- @DynamoDBAttribute(attributeName = "accountName")
- public String getAccountName() { return accountName; }
- public void setAccountName(String accountName) { this.accountName = accountName; }
- @DynamoDBAttribute(attributeName="password")
- public String getPassword() { return password; }
- public void setPassword(String password) { this.password = password;}
- @DynamoDBAttribute(attributeName = "registrationDate")
- public String getRegistrationDate() { return registrationDate; }
- public void setRegistrationDate(String registrationDate) { this.registrationDate = registrationDate; }
- @DynamoDBTypeConverted(converter = CharacterConverter.class)
- @DynamoDBAttribute(attributeName = "characters")
- public Character[] getCharacters(){
- return this.characters;
- }
- @DynamoDBAttribute(attributeName = "characters")
- public void setCharacters(Character[] characters) {
- this.characters = characters;
- }
- @DynamoDBTypeConverted(converter = InventoryItemConverter.class)
- @DynamoDBAttribute(attributeName = "stashItems")
- public InventoryItem[] getStash() {
- return this.stash;
- }
- @DynamoDBAttribute(attributeName = "stashItems")
- public void setStash(InventoryItem[] stash) {
- this.stash = stash;
- }
- }
- public class InventoryItem {
- private int itemId;
- private boolean isInStash;
- private int slotNumber;
- public int getItemId() { return itemId; }
- public void setItemId(int itemId) { this.itemId = itemId; }
- public boolean getIsInStash() { return isInStash; }
- public void setIsInStash(boolean isInStash) { this.isInStash = isInStash; }
- public int getSlotNumber() { return slotNumber; }
- public void setSlotNumber(int slotNumber) { this.slotNumber = slotNumber; }
- }
- public class Character {
- private int characterSlotNumber;
- private int level;
- private int currentExp;
- private String characterClass;
- private InventoryItem[] inventoryItems;
- private int baseHp;
- private int baseMp;
- private int baseDexterity;
- private int baseIntelligence;
- private int baseDefense;
- private int baseStamina;
- private int baseRegeneration;
- private int baseSpeed;
- public int getCharacterSlotNumber() { return characterSlotNumber; }
- public void setCharacterSlotNumber(int characterSlotNumber) { this.characterSlotNumber = characterSlotNumber; }
- public int getLevel() { return level; }
- public void setLevel(int level) { this.level = level; }
- public int getCurrentExp() { return currentExp; }
- public void setCurrentExp(int currentExp) { this.currentExp = currentExp; }
- public String getCharacterClass() { return characterClass; }
- public void setCharacterClass(String characterClass) { this.characterClass = characterClass;}
- public InventoryItem[] getInventoryItems() { return this.inventoryItems; }
- public void setInventoryItems(InventoryItem[] inventoryItems) { this.inventoryItems = inventoryItems; }
- public int getBaseHp() { return baseHp; }
- public void setBaseHp(int baseHp) { this.baseHp = baseHp; }
- public int getBaseMp() { return baseMp; }
- public void setBaseMp(int baseMp) { this.baseMp = baseMp; }
- public int getBaseDexterity() { return baseDexterity; }
- public void setBaseDexterity(int baseDexterity) { this.baseDexterity = baseDexterity; }
- public int getBaseIntelligence() { return baseIntelligence; }
- public void setBaseIntelligence(int baseIntelligence) { this.baseIntelligence = baseIntelligence; }
- public int getBaseDefense() { return baseDefense; }
- public void setBaseDefense(int baseDefense) { this.baseDefense = baseDefense; }
- public int getBaseStamina() { return baseStamina; }
- public void setBaseStamina(int baseStamina) { this.baseStamina = baseStamina; }
- public int getBaseRegeneration() { return baseRegeneration; }
- public void setBaseRegeneration(int baseRegeneration) { this.baseRegeneration = baseRegeneration; }
- public int getBaseSpeed() { return baseSpeed; }
- public void setBaseSpeed(int baseSpeed) { this.baseSpeed = baseSpeed; }
- }
- }
- public class InventoryItemConverter implements DynamoDBTypeConverter<String, InventoryItem[]> {
- public String convert(InventoryItem[] inventoryItems) {
- StringBuilder stringBuilder = new StringBuilder();
- for (InventoryItem inventoryItem : inventoryItems) {
- stringBuilder
- .append(inventoryItem.getItemId()).append("-")
- .append(inventoryItem.getIsInStash()).append("-")
- .append(inventoryItem.getSlotNumber()).append("=");
- }
- return stringBuilder.toString();
- }
- public InventoryItem[] unconvert(String s) {
- String[] inventoryItemsString = s.split("=");
- InventoryItem[] inventoryItems = new InventoryItem[inventoryItemsString.length];
- for (int i = 0; i < inventoryItemsString.length; i++) {
- String[] inventoryItemFields = inventoryItemsString[i].split("-");
- InventoryItem inventoryItem = new InventoryItem();
- inventoryItem.setItemId(Integer.valueOf(inventoryItemFields[0]));
- inventoryItem.setIsInStash(Boolean.valueOf(inventoryItemFields[1]));
- inventoryItem.setSlotNumber(Integer.valueOf(inventoryItemFields[2]));
- inventoryItems[i] = inventoryItem;
- }
- return inventoryItems;
- }
- }
- public class CharacterConverter implements DynamoDBTypeConverter<String, Character[]> {
- public String convert(Character[] characters) {
- StringBuilder stringBuilder = new StringBuilder();
- InventoryItemConverter inventoryItemConverter = new InventoryItemConverter();
- for (Character character : characters) {
- stringBuilder
- .append(character.getCharacterSlotNumber()).append(",")
- .append(character.getLevel()).append(",")
- .append(character.getCurrentExp()).append(",")
- .append(character.getCharacterClass()).append(",")
- .append(inventoryItemConverter.convert(character.getInventoryItems())).append(",")
- .append(character.getBaseHp()).append(",")
- .append(character.getBaseMp()).append(",")
- .append(character.getBaseDexterity()).append(",")
- .append(character.getBaseIntelligence()).append(",")
- .append(character.getBaseDefense()).append(",")
- .append(character.getBaseStamina()).append(",")
- .append(character.getBaseRegeneration()).append(",")
- .append(character.getBaseSpeed()).append(";");
- }
- return stringBuilder.toString();
- }
- public Character[] unconvert(String s) {
- InventoryItemConverter inventoryItemConverter = new InventoryItemConverter();
- String[] charactersStrings = s.split(";");
- Character[] characters = new Character[charactersStrings.length];
- for (int i = 0; i < characters.length; i++) {
- String[] characterFields = charactersStrings[i].split(",");
- Character character = new Character();
- character.setCharacterSlotNumber(Integer.valueOf(characterFields[0]));
- character.setLevel(Integer.valueOf(characterFields[1]));
- character.setCurrentExp(Integer.valueOf(characterFields[2]));
- character.setCharacterClass(characterFields[3]);
- character.setInventoryItems(inventoryItemConverter.unconvert(characterFields[4]));
- character.setBaseHp(Integer.valueOf(characterFields[5]));
- character.setBaseMp(Integer.valueOf(characterFields[6]));
- character.setBaseDexterity(Integer.valueOf(characterFields[7]));
- character.setBaseIntelligence(Integer.valueOf(characterFields[8]));
- character.setBaseDefense(Integer.valueOf(characterFields[9]));
- character.setBaseStamina(Integer.valueOf(characterFields[10]));
- character.setBaseRegeneration(Integer.valueOf(characterFields[11]));
- character.setBaseSpeed(Integer.valueOf(characterFields[12]));
- }
- return characters;
- }
- }
Add Comment
Please, Sign In to add comment