From f5ce95e2dc820c0ad336d8923c4b0e13642c50a9 Mon Sep 17 00:00:00 2001 From: qvalentin Date: Sun, 15 May 2022 11:38:10 +0200 Subject: [PATCH] add ID generators --- .../main/java/category/CategoryUseCase.java | 1 - .../category/RandomCategoryIdGenerator.java | 20 +++++++++++++++++++ .../src/main/java/link/LinkUseCase.java | 1 - .../main/java/link/RandomLinkIdGenerator.java | 19 ++++++++++++++++++ 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 2-Application/src/main/java/category/RandomCategoryIdGenerator.java create mode 100644 2-Application/src/main/java/link/RandomLinkIdGenerator.java diff --git a/2-Application/src/main/java/category/CategoryUseCase.java b/2-Application/src/main/java/category/CategoryUseCase.java index 2b83312..36327ee 100644 --- a/2-Application/src/main/java/category/CategoryUseCase.java +++ b/2-Application/src/main/java/category/CategoryUseCase.java @@ -13,7 +13,6 @@ public class CategoryUseCase { } public void addCategory(CategoryName name) { - var id = this.categoryIdGenerator.generateId(); this.categoryRepository.add(new Category(name, id)); } diff --git a/2-Application/src/main/java/category/RandomCategoryIdGenerator.java b/2-Application/src/main/java/category/RandomCategoryIdGenerator.java new file mode 100644 index 0000000..6f353bb --- /dev/null +++ b/2-Application/src/main/java/category/RandomCategoryIdGenerator.java @@ -0,0 +1,20 @@ +package category; + +public class RandomCategoryIdGenerator implements CategoryIdGenerator { + + private final CategoryRepository categoryRepository; + + public RandomCategoryIdGenerator(CategoryRepository categoryRepository) { + this.categoryRepository = categoryRepository; + } + + @Override + public CategoryId generateId() { + var randomID = (int) (Math.random() * 10000); + + if (categoryRepository.getById(new CategoryId(randomID)).isPresent()) { + return generateId(); + } + return new CategoryId(randomID); + } +} diff --git a/2-Application/src/main/java/link/LinkUseCase.java b/2-Application/src/main/java/link/LinkUseCase.java index c6c8ffc..88c1f77 100644 --- a/2-Application/src/main/java/link/LinkUseCase.java +++ b/2-Application/src/main/java/link/LinkUseCase.java @@ -41,7 +41,6 @@ public class LinkUseCase { var link = new Link(id, creator, url, categoryIds, tags); linkRepository.add(link); - } } diff --git a/2-Application/src/main/java/link/RandomLinkIdGenerator.java b/2-Application/src/main/java/link/RandomLinkIdGenerator.java new file mode 100644 index 0000000..f9f34f3 --- /dev/null +++ b/2-Application/src/main/java/link/RandomLinkIdGenerator.java @@ -0,0 +1,19 @@ +package link; + +public class RandomLinkIdGenerator implements LinkIdGenerator { + private final LinkRepository linkRepository; + + public RandomLinkIdGenerator(LinkRepository linkRepository) { + this.linkRepository = linkRepository; + } + + @Override + public LinkId generateId() { + var randomID = (int) (Math.random() * 10000); + + if (linkRepository.getById(new LinkId(randomID)).isPresent()) { + return generateId(); + } + return new LinkId(randomID); + } +}