package com.flexpoker.table.command.repository; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Repository; import com.flexpoker.table.command.framework.TableEvent; @Profile("default") @Repository public class InMemoryTableEventRepository implements TableEventRepository { private final Map<UUID, List<TableEvent>> tableEventMap; public InMemoryTableEventRepository() { tableEventMap = new HashMap<>(); } @Override public List<TableEvent> fetchAll(UUID id) { return tableEventMap.get(id); } @Override public void save(TableEvent event) { if (!tableEventMap.containsKey(event.getAggregateId())) { tableEventMap.put(event.getAggregateId(), new ArrayList<>()); } tableEventMap.get(event.getAggregateId()).add(event); } }