X-Git-Url: https://git.wpitchoune.net/gitweb/?p=pnews.git;a=blobdiff_plain;f=war%2Fsrc%2Fmain%2Fjava%2Fpnews%2Fservlet%2FArticleStore.java;fp=war%2Fsrc%2Fmain%2Fjava%2Fpnews%2Fservlet%2FArticleStore.java;h=0000000000000000000000000000000000000000;hp=f60b819d4c5b3ac82f260438941e6c6fb835fcba;hb=aff83c8798602b535d13edeaffdb8f4238e2bbf5;hpb=88a7ba9745b8318ca6c4f741906a40e3d6a8f07e diff --git a/war/src/main/java/pnews/servlet/ArticleStore.java b/war/src/main/java/pnews/servlet/ArticleStore.java deleted file mode 100644 index f60b819..0000000 --- a/war/src/main/java/pnews/servlet/ArticleStore.java +++ /dev/null @@ -1,72 +0,0 @@ -package pnews.servlet; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.logging.Logger; - -import pnews.Article; - -public class ArticleStore { - public final static ArticleStore singleton = new ArticleStore(); - private final HashMap> articles = new HashMap<>(); - private final static Logger LOG = Logger.getLogger(ArticleStore.class.getName()); - - public Article get(String link) { - WeakReference
ref; - Article result; - - synchronized (articles) { - ref = articles.get(link); - if (ref == null) { - return null; - } - - result = ref.get(); - if (result == null) { - LOG.info("Article has been released from memory: " + link); - articles.remove(link); - } - - return result; - } - } - - public Article getArticle(String link, ArticleFactory factory) { - Article result; - - synchronized (articles) { - result = get(link); - if (result == null) { - result = factory.create(); - articles.put(link, new WeakReference<>(result)); - LOG.fine("Article has been added: " + result.link); - } - - return result; - } - } - - public long size() { - synchronized (this) { - return articles.size(); - } - } - - public Article[] getArticles() { - ArrayList
result; - Article a; - - synchronized (articles) { - result = new ArrayList<>(articles.size()); - - for (WeakReference
r: articles.values()) { - a = r.get(); - if (a != null) - result.add(a); - } - - return result.toArray(new Article[] {}); - } - } -}