package com.example.datacollect.repository; import com.example.datacollect.model.Article; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ArticleRepository { private static final Logger logger = LoggerFactory.getLogger(ArticleRepository.class); private final List
articles = new ArrayList<>(); public void add(Article article) { if (article == null) { logger.error("Attempted to add null article"); throw new IllegalArgumentException("Article cannot be null"); } if (article.getTitle() == null || article.getTitle().trim().isEmpty()) { logger.error("Attempted to add article with empty title"); throw new IllegalArgumentException("Article title cannot be null or empty"); } if (article.getUrl() == null || article.getUrl().trim().isEmpty()) { logger.error("Attempted to add article with empty URL"); throw new IllegalArgumentException("Article URL cannot be null or empty"); } articles.add(article); logger.debug("Added article: {}", article.getTitle()); } public List
getAll() { logger.debug("Retrieving all articles, count: {}", articles.size()); return Collections.unmodifiableList(articles); } public int size() { return articles.size(); } public void addAll(List
articleList) { if (articleList == null) { logger.error("Attempted to add null article list"); throw new IllegalArgumentException("Article list cannot be null"); } for (Article article : articleList) { add(article); } logger.info("Added {} articles", articleList.size()); } public void clear() { int count = articles.size(); articles.clear(); logger.info("Cleared {} articles", count); } }