From 54682f240efcaaed6efd00a62ab2b38e4f8ab32d Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sat, 2 Mar 2019 16:38:05 +0100
Subject: [PATCH] big refactoring: classes related to categories

---
 .../{entities/category => categories}/Category.java      | 2 +-
 .../{controller => categories}/CategoryController.java   | 8 ++------
 .../{repositories => categories}/CategoryRepository.java | 6 +++---
 .../{services => categories}/CategoryService.java        | 9 +++++----
 .../budgetmaster/categories/CategoryType.java            | 7 +++++++
 .../{validators => categories}/CategoryValidator.java    | 3 +--
 .../budgetmaster/controller/FilterController.java        | 2 +-
 .../budgetmaster/controller/ReportController.java        | 1 +
 .../budgetmaster/controller/SettingsController.java      | 3 ++-
 .../de/deadlocker8/budgetmaster/database/Database.java   | 2 +-
 .../budgetmaster/database/DatabaseParser.java            | 2 +-
 .../budgetmaster/database/DatabaseParser_v3.java         | 2 +-
 .../budgetmaster/database/legacy/LegacyParser.java       | 4 ++--
 .../budgetmaster/entities/category/CategoryType.java     | 7 -------
 .../reports/categoryBudget/CategoryBudget.java           | 2 +-
 .../reports/categoryBudget/CategoryBudgetHandler.java    | 2 +-
 .../budgetmaster/services/DatabaseService.java           | 3 ++-
 .../budgetmaster/services/FilterHelpersService.java      | 5 +++--
 .../budgetmaster/services/HelpersService.java            | 4 ++--
 .../deadlocker8/budgetmaster/services/ImportService.java | 6 +++---
 .../budgetmaster/transactions/Transaction.java           | 2 +-
 .../budgetmaster/transactions/TransactionController.java | 1 +
 .../budgetmaster/transactions/TransactionService.java    | 7 ++-----
 .../budgetmaster/transactions/Transaction_.java          | 2 +-
 .../budgetmaster/validators/AccountValidator.java        | 2 +-
 .../budgetmaster/TransactionRepositoryTest.java          | 5 +++--
 .../budgetmaster/database/DatabaseImportTest.java        | 6 +++---
 .../budgetmaster/database/DatabaseParser_v3Test.java     | 4 ++--
 .../budgetmaster/database/LegacyParserTest.java          | 4 ++--
 29 files changed, 56 insertions(+), 57 deletions(-)
 rename src/main/java/de/deadlocker8/budgetmaster/{entities/category => categories}/Category.java (97%)
 rename src/main/java/de/deadlocker8/budgetmaster/{controller => categories}/CategoryController.java (91%)
 rename src/main/java/de/deadlocker8/budgetmaster/{repositories => categories}/CategoryRepository.java (68%)
 rename src/main/java/de/deadlocker8/budgetmaster/{services => categories}/CategoryService.java (86%)
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/categories/CategoryType.java
 rename src/main/java/de/deadlocker8/budgetmaster/{validators => categories}/CategoryValidator.java (84%)
 delete mode 100644 src/main/java/de/deadlocker8/budgetmaster/entities/category/CategoryType.java

diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/category/Category.java b/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
similarity index 97%
rename from src/main/java/de/deadlocker8/budgetmaster/entities/category/Category.java
rename to src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
index 2ad786b1b..4eb52629c 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/category/Category.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
@@ -1,4 +1,4 @@
-package de.deadlocker8.budgetmaster.entities.category;
+package de.deadlocker8.budgetmaster.categories;
 
 import com.google.gson.annotations.Expose;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryController.java
similarity index 91%
rename from src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java
rename to src/main/java/de/deadlocker8/budgetmaster/categories/CategoryController.java
index b9a26510e..b7fc1bb93 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryController.java
@@ -1,13 +1,9 @@
-package de.deadlocker8.budgetmaster.controller;
+package de.deadlocker8.budgetmaster.categories;
 
-import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
-import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
-import de.deadlocker8.budgetmaster.services.CategoryService;
+import de.deadlocker8.budgetmaster.controller.BaseController;
 import de.deadlocker8.budgetmaster.services.HelpersService;
 import de.deadlocker8.budgetmaster.utils.Colors;
 import de.deadlocker8.budgetmaster.utils.ResourceNotFoundException;
-import de.deadlocker8.budgetmaster.validators.CategoryValidator;
 import de.thecodelabs.utils.util.ColorUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repositories/CategoryRepository.java b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryRepository.java
similarity index 68%
rename from src/main/java/de/deadlocker8/budgetmaster/repositories/CategoryRepository.java
rename to src/main/java/de/deadlocker8/budgetmaster/categories/CategoryRepository.java
index 2e39888b5..2a51a4fb7 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/repositories/CategoryRepository.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryRepository.java
@@ -1,7 +1,7 @@
-package de.deadlocker8.budgetmaster.repositories;
+package de.deadlocker8.budgetmaster.categories;
 
-import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.Category;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 import java.util.List;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java
similarity index 86%
rename from src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
rename to src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java
index 8aa930959..cabe084ff 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java
@@ -1,9 +1,10 @@
-package de.deadlocker8.budgetmaster.services;
+package de.deadlocker8.budgetmaster.categories;
 
-import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.Category;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
+import de.deadlocker8.budgetmaster.services.Resetable;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
-import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
+import de.deadlocker8.budgetmaster.categories.CategoryRepository;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import de.thecodelabs.utils.util.Localization;
 import org.slf4j.Logger;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryType.java b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryType.java
new file mode 100644
index 000000000..40c9b5d4a
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryType.java
@@ -0,0 +1,7 @@
+package de.deadlocker8.budgetmaster.categories;
+
+
+public enum CategoryType
+{
+	NONE, REST, CUSTOM
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/validators/CategoryValidator.java b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryValidator.java
similarity index 84%
rename from src/main/java/de/deadlocker8/budgetmaster/validators/CategoryValidator.java
rename to src/main/java/de/deadlocker8/budgetmaster/categories/CategoryValidator.java
index b32c6582e..f9645c333 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/validators/CategoryValidator.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryValidator.java
@@ -1,6 +1,5 @@
-package de.deadlocker8.budgetmaster.validators;
+package de.deadlocker8.budgetmaster.categories;
 
-import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import org.springframework.validation.Errors;
 import org.springframework.validation.ValidationUtils;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java
index d85f32a97..2a9a9a125 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.controller;
 
 import de.deadlocker8.budgetmaster.filter.FilterConfiguration;
-import de.deadlocker8.budgetmaster.services.CategoryService;
+import de.deadlocker8.budgetmaster.categories.CategoryService;
 import de.deadlocker8.budgetmaster.services.FilterHelpersService;
 import de.deadlocker8.budgetmaster.services.HelpersService;
 import de.deadlocker8.budgetmaster.transactions.TransactionService;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java
index a0a0edcd3..6237f6b00 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java
@@ -1,6 +1,7 @@
 package de.deadlocker8.budgetmaster.controller;
 
 import com.itextpdf.text.DocumentException;
+import de.deadlocker8.budgetmaster.categories.CategoryService;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.account.AccountType;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
index 587b9c289..11f77dd2a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
@@ -3,10 +3,11 @@ package de.deadlocker8.budgetmaster.controller;
 import de.deadlocker8.budgetmaster.Build;
 import de.deadlocker8.budgetmaster.authentication.User;
 import de.deadlocker8.budgetmaster.authentication.UserRepository;
+import de.deadlocker8.budgetmaster.categories.CategoryService;
 import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.database.DatabaseParser;
 import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatchList;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.entities.Settings;
 import de.deadlocker8.budgetmaster.repositories.SettingsRepository;
 import de.deadlocker8.budgetmaster.services.*;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/Database.java b/src/main/java/de/deadlocker8/budgetmaster/database/Database.java
index c56c52626..00fb17d14 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/Database.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/Database.java
@@ -2,7 +2,7 @@ package de.deadlocker8.budgetmaster.database;
 
 import com.google.gson.annotations.Expose;
 import de.deadlocker8.budgetmaster.entities.account.Account;
-import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 
 import java.util.List;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
index 71032960b..b1367a878 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
@@ -3,7 +3,7 @@ package de.deadlocker8.budgetmaster.database;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import de.deadlocker8.budgetmaster.database.legacy.LegacyParser;
-import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.categories.Category;
 import de.thecodelabs.utils.util.Localization;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
index a61a4f717..428e63687 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
@@ -2,7 +2,7 @@ package de.deadlocker8.budgetmaster.database;
 
 import com.google.gson.*;
 import de.deadlocker8.budgetmaster.entities.account.Account;
-import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java
index 3cd746c71..45435430e 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java
@@ -7,8 +7,8 @@ import com.google.gson.JsonParser;
 import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.account.AccountType;
-import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.Category;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndDate;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/category/CategoryType.java b/src/main/java/de/deadlocker8/budgetmaster/entities/category/CategoryType.java
deleted file mode 100644
index b484e7fb3..000000000
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/category/CategoryType.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.entities.category;
-
-
-public enum CategoryType
-{
-	NONE, REST, CUSTOM
-}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudget.java b/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudget.java
index 0bfb49b77..1b073c05a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudget.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudget.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.reports.categoryBudget;
 
-import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.categories.Category;
 
 public class CategoryBudget
 {
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudgetHandler.java b/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudgetHandler.java
index 14504115c..e34b616f1 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudgetHandler.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudgetHandler.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.reports.categoryBudget;
 
 import de.deadlocker8.budgetmaster.transactions.Transaction;
-import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.categories.Category;
 
 import java.util.*;
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java b/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
index 08a126aeb..6b1bc8e51 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
@@ -1,9 +1,10 @@
 package de.deadlocker8.budgetmaster.services;
 
 import com.google.gson.*;
+import de.deadlocker8.budgetmaster.categories.CategoryService;
 import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.entities.account.Account;
-import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.transactions.TransactionService;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/FilterHelpersService.java b/src/main/java/de/deadlocker8/budgetmaster/services/FilterHelpersService.java
index 34860d74a..8d9266965 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/FilterHelpersService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/FilterHelpersService.java
@@ -1,7 +1,8 @@
 package de.deadlocker8.budgetmaster.services;
 
-import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.Category;
+import de.deadlocker8.budgetmaster.categories.CategoryService;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.filter.FilterObject;
 import de.deadlocker8.budgetmaster.filter.FilterConfiguration;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
index d7833340f..bef574862 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
@@ -5,12 +5,12 @@ import de.deadlocker8.budgetmaster.entities.Settings;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.account.AccountType;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.filter.FilterConfiguration;
 import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierType;
 import de.deadlocker8.budgetmaster.repositories.AccountRepository;
-import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
+import de.deadlocker8.budgetmaster.categories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.SettingsRepository;
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
 import de.deadlocker8.budgetmaster.transactions.TransactionService;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
index 6a1325082..9fa63aefe 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
@@ -3,11 +3,11 @@ package de.deadlocker8.budgetmaster.services;
 import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatch;
 import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatchList;
-import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.Category;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
-import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
+import de.deadlocker8.budgetmaster.categories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
 import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
 import org.slf4j.Logger;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
index 2d2cfae86..01d7d9dbb 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
@@ -3,7 +3,7 @@ package de.deadlocker8.budgetmaster.transactions;
 import com.google.gson.annotations.Expose;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.entities.account.Account;
-import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import org.joda.time.DateTime;
 import org.springframework.format.annotation.DateTimeFormat;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
index de9215669..459050fe9 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
@@ -1,5 +1,6 @@
 package de.deadlocker8.budgetmaster.transactions;
 
+import de.deadlocker8.budgetmaster.categories.CategoryRepository;
 import de.deadlocker8.budgetmaster.controller.BaseController;
 import de.deadlocker8.budgetmaster.entities.Settings;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
index 0bab63534..6cf787632 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
@@ -2,14 +2,11 @@ package de.deadlocker8.budgetmaster.transactions;
 
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.account.AccountType;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.services.Resetable;
-import de.deadlocker8.budgetmaster.transactions.Transaction;
-import de.deadlocker8.budgetmaster.transactions.TransactionSpecifications;
 import de.deadlocker8.budgetmaster.filter.FilterConfiguration;
-import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
+import de.deadlocker8.budgetmaster.categories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.RepeatingOptionRepository;
-import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import de.thecodelabs.utils.util.Localization;
 import org.joda.time.DateTime;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction_.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction_.java
index eafe89583..46f82af15 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction_.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction_.java
@@ -2,7 +2,7 @@ package de.deadlocker8.budgetmaster.transactions;
 
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.entities.account.Account;
-import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import org.joda.time.DateTime;
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/validators/AccountValidator.java b/src/main/java/de/deadlocker8/budgetmaster/validators/AccountValidator.java
index 24d7c03dd..70bdbda0f 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/validators/AccountValidator.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/validators/AccountValidator.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.validators;
 
-import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import org.springframework.validation.Errors;
 import org.springframework.validation.ValidationUtils;
diff --git a/src/test/java/de/deadlocker8/budgetmaster/TransactionRepositoryTest.java b/src/test/java/de/deadlocker8/budgetmaster/TransactionRepositoryTest.java
index c753811f8..16ba74699 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/TransactionRepositoryTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/TransactionRepositoryTest.java
@@ -1,9 +1,10 @@
 package de.deadlocker8.budgetmaster;
 
+import de.deadlocker8.budgetmaster.categories.CategoryRepository;
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.account.AccountType;
-import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.Category;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
diff --git a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java
index 45ca49d38..7d943ddc1 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java
@@ -2,11 +2,11 @@ package de.deadlocker8.budgetmaster.database;
 
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.account.AccountType;
-import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.Category;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
-import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
+import de.deadlocker8.budgetmaster.categories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
 import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
 import de.deadlocker8.budgetmaster.services.ImportService;
diff --git a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
index 7addb5c90..80ded4c3c 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
@@ -2,8 +2,8 @@ package de.deadlocker8.budgetmaster.database;
 
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.account.AccountType;
-import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.Category;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
diff --git a/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java b/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
index 5ff56abc3..ff4e76a55 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
@@ -3,8 +3,8 @@ package de.deadlocker8.budgetmaster.database;
 import de.deadlocker8.budgetmaster.database.legacy.LegacyParser;
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.account.AccountType;
-import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.category.CategoryType;
+import de.deadlocker8.budgetmaster.categories.Category;
+import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
-- 
GitLab