diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTag_v4.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTag_v4.java new file mode 100644 index 0000000000000000000000000000000000000000..72ca4933663354ceded8b02344e16a47cad3d097 --- /dev/null +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTag_v4.java @@ -0,0 +1,51 @@ +package de.deadlocker8.budgetmaster.database.model.v4; + +import java.util.Objects; + +public class BackupTag_v4 +{ + private String name; + + public BackupTag_v4() + { + // for GSON + } + + public BackupTag_v4(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + @Override + public boolean equals(Object o) + { + if(this == o) return true; + if(o == null || getClass() != o.getClass()) return false; + BackupTag_v4 that = (BackupTag_v4) o; + return Objects.equals(name, that.name); + } + + @Override + public int hashCode() + { + return Objects.hash(name); + } + + @Override + public String toString() + { + return "BackupTag_v4{" + + "name='" + name + '\'' + + '}'; + } +} diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTemplate_v4.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTemplate_v4.java index 3c3f29701e813d60f17d7e2b282e60836a7e12da..75aa699855670a1e2bf8914b6406d27e3348774d 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTemplate_v4.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTemplate_v4.java @@ -18,7 +18,7 @@ public class BackupTemplate_v4 implements BackupTransactionBase_v4, Upgradeable< private BackupCategory_v4 category; private String name; private String description; - private List<Tag> tags; + private List<BackupTag_v4> tags; private BackupAccount_v4 transferAccount; public BackupTemplate_v4() @@ -96,12 +96,12 @@ public class BackupTemplate_v4 implements BackupTransactionBase_v4, Upgradeable< this.description = description; } - public List<Tag> getTags() + public List<BackupTag_v4> getTags() { return tags; } - public void setTags(List<Tag> tags) + public void setTags(List<BackupTag_v4> tags) { this.tags = tags; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTransaction_v4.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTransaction_v4.java index 265ed8999fe215e09d22f82075a7428e325e9a49..8d6814c7ca01dbad48f6eb7631d1e0c5077ab22a 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTransaction_v4.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupTransaction_v4.java @@ -18,7 +18,7 @@ public class BackupTransaction_v4 implements BackupTransactionBase_v4, Upgradeab private BackupCategory_v4 category; private String name; private String description; - private List<Tag> tags; + private List<BackupTag_v4> tags; private BackupRepeatingOption_v4 repeatingOption; private BackupAccount_v4 transferAccount; @@ -97,12 +97,12 @@ public class BackupTransaction_v4 implements BackupTransactionBase_v4, Upgradeab this.description = description; } - public List<Tag> getTags() + public List<BackupTag_v4> getTags() { return tags; } - public void setTags(List<Tag> tags) + public void setTags(List<BackupTag_v4> tags) { this.tags = tags; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupTemplate_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupTemplate_v5.java index 944f1090ac2a1fdcb50e37d15f804fd5cc21bfd0..d362f2d188e504b5558ccf6e8427a96150c2f126 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupTemplate_v5.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupTemplate_v5.java @@ -1,5 +1,6 @@ package de.deadlocker8.budgetmaster.database.model.v5; +import de.deadlocker8.budgetmaster.database.model.v4.BackupTag_v4; import de.deadlocker8.budgetmaster.tags.Tag; import java.util.List; @@ -15,7 +16,7 @@ public class BackupTemplate_v5 private String name; private String description; private BackupImage_v5 icon; - private List<Tag> tags; + private List<BackupTag_v4> tags; private BackupAccount_v5 transferAccount; public BackupTemplate_v5() @@ -23,7 +24,7 @@ public class BackupTemplate_v5 // for GSON } - public BackupTemplate_v5(String templateName, Integer amount, Boolean isExpenditure, BackupAccount_v5 account, BackupCategory_v5 category, String name, String description, BackupImage_v5 icon, List<Tag> tags, BackupAccount_v5 transferAccount) + public BackupTemplate_v5(String templateName, Integer amount, Boolean isExpenditure, BackupAccount_v5 account, BackupCategory_v5 category, String name, String description, BackupImage_v5 icon, List<BackupTag_v4> tags, BackupAccount_v5 transferAccount) { this.templateName = templateName; this.amount = amount; @@ -117,12 +118,12 @@ public class BackupTemplate_v5 this.icon = icon; } - public List<Tag> getTags() + public List<BackupTag_v4> getTags() { return tags; } - public void setTags(List<Tag> tags) + public void setTags(List<BackupTag_v4> tags) { this.tags = tags; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupTransaction_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupTransaction_v5.java index 299d521c1021003e995c85ae8779d5d3b1f08419..5243376b45ac9ac1442adc2fdafa0ef92242dcee 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupTransaction_v5.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupTransaction_v5.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.database.model.v5; import de.deadlocker8.budgetmaster.database.model.v4.BackupRepeatingOption_v4; -import de.deadlocker8.budgetmaster.tags.Tag; +import de.deadlocker8.budgetmaster.database.model.v4.BackupTag_v4; import java.util.List; import java.util.Objects; @@ -15,7 +15,7 @@ public class BackupTransaction_v5 private BackupCategory_v5 category; private String name; private String description; - private List<Tag> tags; + private List<BackupTag_v4> tags; private BackupRepeatingOption_v4 repeatingOption; private BackupAccount_v5 transferAccount; @@ -24,7 +24,7 @@ public class BackupTransaction_v5 // for GSON } - public BackupTransaction_v5(Integer amount, Boolean isExpenditure, String date, BackupAccount_v5 account, BackupCategory_v5 category, String name, String description, List<Tag> tags, BackupRepeatingOption_v4 repeatingOption, BackupAccount_v5 transferAccount) + public BackupTransaction_v5(Integer amount, Boolean isExpenditure, String date, BackupAccount_v5 account, BackupCategory_v5 category, String name, String description, List<BackupTag_v4> tags, BackupRepeatingOption_v4 repeatingOption, BackupAccount_v5 transferAccount) { this.amount = amount; this.isExpenditure = isExpenditure; @@ -108,12 +108,12 @@ public class BackupTransaction_v5 this.description = description; } - public List<Tag> getTags() + public List<BackupTag_v4> getTags() { return tags; } - public void setTags(List<Tag> tags) + public void setTags(List<BackupTag_v4> tags) { this.tags = tags; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TagConverter_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TagConverter_v5.java new file mode 100644 index 0000000000000000000000000000000000000000..68e62a3f7e4fa5ac32e251616cf13cb75cff30e7 --- /dev/null +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TagConverter_v5.java @@ -0,0 +1,29 @@ +package de.deadlocker8.budgetmaster.database.model.v5.converter; + +import de.deadlocker8.budgetmaster.database.model.Converter; +import de.deadlocker8.budgetmaster.database.model.v4.BackupTag_v4; +import de.deadlocker8.budgetmaster.tags.Tag; + +public class TagConverter_v5 implements Converter<Tag, BackupTag_v4> +{ + public Tag convertToInternalForm(BackupTag_v4 backupTag) + { + if(backupTag == null) + { + return null; + } + + return new Tag(backupTag.getName()); + } + + @Override + public BackupTag_v4 convertToExternalForm(Tag internalItem) + { + if(internalItem == null) + { + return null; + } + + return new BackupTag_v4(internalItem.getName()); + } +} diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TemplateConverter_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TemplateConverter_v5.java index b1b4302ef267553898a47e81d82c78baa8143959..2e8f10059dded7a6e31b53b66b6adca22268acb5 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TemplateConverter_v5.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TemplateConverter_v5.java @@ -1,9 +1,14 @@ package de.deadlocker8.budgetmaster.database.model.v5.converter; import de.deadlocker8.budgetmaster.database.model.Converter; +import de.deadlocker8.budgetmaster.database.model.v4.BackupTag_v4; import de.deadlocker8.budgetmaster.database.model.v5.BackupTemplate_v5; +import de.deadlocker8.budgetmaster.tags.Tag; import de.deadlocker8.budgetmaster.templates.Template; +import java.util.ArrayList; +import java.util.List; + public class TemplateConverter_v5 implements Converter<Template, BackupTemplate_v5> { public Template convertToInternalForm(BackupTemplate_v5 backupTemplate) @@ -30,7 +35,15 @@ public class TemplateConverter_v5 implements Converter<Template, BackupTemplate_ template.setAccount(new AccountConverter_v5().convertToInternalForm(backupTemplate.getAccount())); template.setTransferAccount(new AccountConverter_v5().convertToInternalForm(backupTemplate.getTransferAccount())); - template.setTags(backupTemplate.getTags()); + + List<Tag> convertedTags = new ArrayList<>(); + TagConverter_v5 tagConverter = new TagConverter_v5(); + for(BackupTag_v4 tag : backupTemplate.getTags()) + { + convertedTags.add(tagConverter.convertToInternalForm(tag)); + } + template.setTags(convertedTags); + template.setTemplateName(backupTemplate.getTemplateName()); template.setIcon(new ImageConverter_v5().convertToInternalForm(backupTemplate.getIcon())); return template; @@ -52,7 +65,15 @@ public class TemplateConverter_v5 implements Converter<Template, BackupTemplate_ template.setExpenditure(internalItem.getExpenditure()); template.setAccount(new AccountConverter_v5().convertToExternalForm(internalItem.getAccount())); template.setTransferAccount(new AccountConverter_v5().convertToExternalForm(internalItem.getTransferAccount())); - template.setTags(internalItem.getTags()); + + List<BackupTag_v4> convertedTags = new ArrayList<>(); + TagConverter_v5 tagConverter = new TagConverter_v5(); + for(Tag tag : internalItem.getTags()) + { + convertedTags.add(tagConverter.convertToExternalForm(tag)); + } + template.setTags(convertedTags); + template.setTemplateName(internalItem.getTemplateName()); template.setIcon(new ImageConverter_v5().convertToExternalForm(internalItem.getIcon())); return template; diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TransactionConverter_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TransactionConverter_v5.java index 07b1ec0c57663a1fb2a847f3e24e7e8f9629b92b..333931d4e69ae5730b51607a7b63d0900a72e46b 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TransactionConverter_v5.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TransactionConverter_v5.java @@ -1,11 +1,16 @@ package de.deadlocker8.budgetmaster.database.model.v5.converter; import de.deadlocker8.budgetmaster.database.model.Converter; +import de.deadlocker8.budgetmaster.database.model.v4.BackupTag_v4; import de.deadlocker8.budgetmaster.database.model.v5.BackupTransaction_v5; +import de.deadlocker8.budgetmaster.tags.Tag; import de.deadlocker8.budgetmaster.transactions.Transaction; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; +import java.util.ArrayList; +import java.util.List; + public class TransactionConverter_v5 implements Converter<Transaction, BackupTransaction_v5> { public Transaction convertToInternalForm(BackupTransaction_v5 backupTransaction) @@ -28,7 +33,14 @@ public class TransactionConverter_v5 implements Converter<Transaction, BackupTra date = date.withHourOfDay(12).withMinuteOfHour(0).withSecondOfMinute(0); transaction.setDate(date); - transaction.setTags(backupTransaction.getTags()); + List<Tag> convertedTags = new ArrayList<>(); + TagConverter_v5 tagConverter = new TagConverter_v5(); + for(BackupTag_v4 tag : backupTransaction.getTags()) + { + convertedTags.add(tagConverter.convertToInternalForm(tag)); + } + transaction.setTags(convertedTags); + transaction.setRepeatingOption(new RepeatingOptionConverter_v5().convertToInternalForm(backupTransaction.getRepeatingOption())); return transaction; } @@ -50,7 +62,15 @@ public class TransactionConverter_v5 implements Converter<Transaction, BackupTra transaction.setAccount(new AccountConverter_v5().convertToExternalForm(internalItem.getAccount())); transaction.setTransferAccount(new AccountConverter_v5().convertToExternalForm(internalItem.getTransferAccount())); transaction.setDate(internalItem.getDate().toString(DateTimeFormat.forPattern("yyyy-MM-dd"))); - transaction.setTags(internalItem.getTags()); + + List<BackupTag_v4> convertedTags = new ArrayList<>(); + TagConverter_v5 tagConverter = new TagConverter_v5(); + for(Tag tag : internalItem.getTags()) + { + convertedTags.add(tagConverter.convertToExternalForm(tag)); + } + transaction.setTags(convertedTags); + transaction.setRepeatingOption(new RepeatingOptionConverter_v5().convertToExternalForm(internalItem.getRepeatingOption())); return transaction; } diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v4Test.java b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v4Test.java index 70e9b483c3225decddd538a6839c36978e7faf43..1616d922f9991e62e0a9283a5298a1d24ea8b788 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v4Test.java +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v4Test.java @@ -121,9 +121,8 @@ public class DatabaseParser_v4Test normalTransaction_2.setCategory(category3); normalTransaction_2.setExpenditure(true); - List<Tag> tags = new ArrayList<>(); - Tag tag = new Tag("0815"); - tag.setID(1); + List<BackupTag_v4> tags = new ArrayList<>(); + BackupTag_v4 tag = new BackupTag_v4("0815"); tags.add(tag); normalTransaction_2.setTags(tags); @@ -194,9 +193,8 @@ public class DatabaseParser_v4Test normalTemplate.setCategory(categoryNone); normalTemplate.setExpenditure(false); - List<Tag> tags = new ArrayList<>(); - Tag tag = new Tag("0815"); - tag.setID(1); + List<BackupTag_v4> tags = new ArrayList<>(); + BackupTag_v4 tag = new BackupTag_v4("0815"); tags.add(tag); normalTemplate.setTags(tags); diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v5Test.java b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v5Test.java index a230dceb8900297c2b65ade6e9ce05657717c8da..1b591fe95c0b6c6de5034feddfe3ae9d99894b67 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v5Test.java +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v5Test.java @@ -228,7 +228,6 @@ public class DatabaseParser_v5Test List<Tag> tags = new ArrayList<>(); Tag tag = new Tag("0815"); - tag.setID(1); tags.add(tag); normalTransaction_2.setTags(tags);