cleanup and refactored to move to net.wpitchoune package
[pnews.git] / war / src / main / java / pnews / servlet / JSON.java
index 0a9b8ce..78379a4 100644 (file)
@@ -1,6 +1,7 @@
 package pnews.servlet;
 
 import java.io.IOException;
+import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -8,16 +9,19 @@ import com.google.gson.Gson;
 import com.google.gson.JsonObject;
 import com.rometools.rome.io.FeedException;
 
-import pnews.Article;
-import pnews.Category;
+import net.wpitchoune.pnews.Article;
+import net.wpitchoune.pnews.ArticleStore;
+import net.wpitchoune.pnews.Category;
+import net.wpitchoune.pnews.Config;
 
 public class JSON {
         private static final Logger LOG = Logger.getLogger(JSON.class.getName());
         
-        public static String getStats(Category[] cats) {
+        public static String getStats(ArticleProvider provider, Config config) {
                 JsonObject jstats, jreadcounts, jcategories, jmemory;
                 Runtime runtime;
-                Article[] articles;
+                List<Article> articles;
+                Article[] allArticles;
                 
                 jstats = new JsonObject();
                                 
@@ -26,19 +30,20 @@ public class JSON {
                 jreadcounts = new JsonObject();
                 jstats.add("read-counts", jreadcounts);
                 
-                articles = ArticleStore.singleton.getArticles();
-                for (Article a: articles)
-                        if (a.readCount.get() > 0)
-                                jreadcounts.addProperty(a.link, a.readCount);         
+                allArticles = ArticleStore.singleton.getArticles();
+                for (Article a: allArticles)
+                        if (a.getReadCount() > 0)
+                                jreadcounts.addProperty(a.getLink(), a.getReadCount());         
                 
                 jcategories = new JsonObject();
                 jstats.add("categories", jcategories);
                 
-                for (Category cat: cats)
+                for (Category cat: config.getCategories())
                         try {
-                                jcategories.addProperty(cat.getName(),
-                                                        articles.length);
-                        } catch (IllegalArgumentException e) {
+                                articles = provider.getArticles(cat, null);
+                                jcategories.addProperty(cat.getLabel(),
+                                                        articles.size());
+                        } catch (IllegalArgumentException | FeedException | IOException e) {
                                 LOG.log(Level.SEVERE, "Fail to retrieve articles", e);
                         }