Browse Source

上传文件至 'w11/repository'

main
wangbo 4 weeks ago
parent
commit
e1747eafcf
  1. 47
      w11/repository/ArticleRepository.java.java

47
w11/repository/ArticleRepository.java.java

@ -0,0 +1,47 @@
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<Article> 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().isBlank()) {
logger.error("Attempted to add article with null or blank title: {}", article.getUrl());
throw new IllegalArgumentException("Article title cannot be null or blank");
}
if (article.getUrl() == null || article.getUrl().isBlank()) {
logger.error("Attempted to add article with null or blank URL");
throw new IllegalArgumentException("Article URL cannot be null or blank");
}
articles.add(article);
logger.debug("Article added: {} - {}", article.getTitle(), article.getUrl());
}
public List<Article> getAll() {
logger.debug("Retrieved {} articles", articles.size());
return Collections.unmodifiableList(articles);
}
public int size() {
return articles.size();
}
public void clear() {
logger.info("Clearing all articles, previous count: {}", articles.size());
articles.clear();
}
}
Loading…
Cancel
Save