From f558de5fa940f47a9681bef5fdc2680a121487ac Mon Sep 17 00:00:00 2001 From: qvalentin Date: Fri, 22 Apr 2022 16:42:53 +0200 Subject: [PATCH] add CategoryPersistence Adapter implemenation --- 0-Plugin/src/main/java/main/Main.java | 10 ++++++ .../CSVCategoryPersistenceAdapter.java | 21 ++++++++--- .../persistence/category/CategoryEntity.java | 36 ++++++++++++++++++- 3 files changed, 61 insertions(+), 6 deletions(-) diff --git a/0-Plugin/src/main/java/main/Main.java b/0-Plugin/src/main/java/main/Main.java index 2bfe90d..bef5087 100644 --- a/0-Plugin/src/main/java/main/Main.java +++ b/0-Plugin/src/main/java/main/Main.java @@ -1,11 +1,21 @@ package main; +import persistence.GenericCSVDAO; +import persistence.category.CSVCategoryPersistenceAdapter; +import persistence.category.CategoryEntity; import tag.TagName; +import java.io.File; + public class Main { public static void main(String[] args) { TagName test = new TagName("ds"); + + var csvCategoryPersistenceAdapter = + new CSVCategoryPersistenceAdapter(new GenericCSVDAO(new File("dsa"), + CategoryEntity::new)); + System.out.println(test); } } diff --git a/1-Adapter/src/main/java/persistence/category/CSVCategoryPersistenceAdapter.java b/1-Adapter/src/main/java/persistence/category/CSVCategoryPersistenceAdapter.java index 8a57e11..abf7783 100644 --- a/1-Adapter/src/main/java/persistence/category/CSVCategoryPersistenceAdapter.java +++ b/1-Adapter/src/main/java/persistence/category/CSVCategoryPersistenceAdapter.java @@ -2,22 +2,33 @@ package persistence.category; import abstraction.PersistenceAdapter; import category.Category; +import persistence.GenericDAO; import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; public class CSVCategoryPersistenceAdapter implements PersistenceAdapter { - @Override - public Set getAll() { - return null; + static Function constuctor = CategoryEntity::new; + private final GenericDAO categoryDAO; + + public CSVCategoryPersistenceAdapter(GenericDAO categoryDAO) { + this.categoryDAO = categoryDAO; } @Override - public void remove(Category value) { + public Set getAll() { + return categoryDAO.getALl().stream().map(CategoryEntity::toCategory).collect(Collectors.toSet()); + } + + @Override + public void remove(Category category) { + categoryDAO.remove(new CategoryEntity(category)); } @Override public void add(Category category) { - + categoryDAO.add(new CategoryEntity(category)); } } diff --git a/1-Adapter/src/main/java/persistence/category/CategoryEntity.java b/1-Adapter/src/main/java/persistence/category/CategoryEntity.java index 2c67dcb..ced3733 100644 --- a/1-Adapter/src/main/java/persistence/category/CategoryEntity.java +++ b/1-Adapter/src/main/java/persistence/category/CategoryEntity.java @@ -1,5 +1,39 @@ package persistence.category; -public record CategoryEntity(String name, int id) { +import category.Category; +import category.CategoryId; +import category.CategoryName; +import persistence.csv.CSVSerializable; +public class CategoryEntity implements CSVSerializable { + + private final String name; + private final int id; + + public CategoryEntity(String name, int id) { + this.name = name; + this.id = id; + } + + public CategoryEntity(String[] fields) { + this(fields[0], Integer.parseInt(fields[1])); + } + + public CategoryEntity(Category category) { + this(category.getName().toString(), category.getId().id()); + } + + public Category toCategory() { + return new Category(new CategoryName(name), new CategoryId(id)); + } + + @Override + public String[] getHeaders() { + return new String[]{"name", "id"}; + } + + @Override + public String toCSVString() { + return name + CSVSerializable.seperator + Integer.toString(id); + } }