diff --git a/2-Application/src/main/java/category/CategoryIdGenerator.java b/2-Application/src/main/java/category/CategoryIdGenerator.java new file mode 100644 index 0000000..637fe15 --- /dev/null +++ b/2-Application/src/main/java/category/CategoryIdGenerator.java @@ -0,0 +1,6 @@ +package category; + +public interface CategoryIdGenerator +{ + CategoryId generateId(); +} diff --git a/2-Application/src/main/java/category/CategoryUseCase.java b/2-Application/src/main/java/category/CategoryUseCase.java new file mode 100644 index 0000000..2b83312 --- /dev/null +++ b/2-Application/src/main/java/category/CategoryUseCase.java @@ -0,0 +1,24 @@ +package category; + +import java.util.Set; + +public class CategoryUseCase { + + private final CategoryRepository categoryRepository; + private final CategoryIdGenerator categoryIdGenerator; + + CategoryUseCase(final CategoryRepository categoryRepository, final CategoryIdGenerator idGenerator) { + this.categoryRepository = categoryRepository; + this.categoryIdGenerator = idGenerator; + } + + public void addCategory(CategoryName name) { + + var id = this.categoryIdGenerator.generateId(); + this.categoryRepository.add(new Category(name, id)); + } + + public Set getCategories() { + return categoryRepository.getAll(); + } +}