3 import java.io.IOException;
4 import java.io.InputStreamReader;
6 import java.util.ArrayList;
7 import java.util.HashMap;
11 import javax.json.Json;
12 import javax.json.JsonArray;
13 import javax.json.JsonObject;
15 import pnews.Category;
20 private Category[] categories;
22 public void loadConfig() {
24 JsonObject jfeeds, jroot;
26 Map<String, Category> cats;
30 r = new InputStreamReader(Config.class.getClassLoader().getResourceAsStream("feeds.json"));
31 jroot = Json.createReader(r).readObject();
34 try { r.close(); } catch (IOException e) { };
37 jfeeds = jroot.getJsonObject("feeds");
39 feedList = new ArrayList<Feed>(jfeeds.size());
40 cats = new HashMap<>();
42 jfeeds.forEach((k, v)-> {
46 JsonArray jcategories;
49 jcategories = jf.getJsonArray("categories");
50 str = jcategories.getString(0);
54 cat = new Category(str);
58 feedList.add(new Feed(k, cat));
61 feeds = feedList.toArray(new Feed[0]);
62 categories = cats.values().toArray(new Category[0]);
65 public Feed[] getFeeds() {
69 public Map<Category, List<Feed>> getFeedsByCategory() {
70 Map<Category, List<Feed>> result;
75 result = new HashMap<>();
79 cat = f.getCategory();
81 catFeeds = result.get(cat);
82 if (catFeeds == null) {
83 catFeeds = new ArrayList<Feed>();
84 result.put(cat, catFeeds);
92 public Category[] getCategories() {
96 public Category getDefaultCategory() {
100 public static void main(String[] args) {
108 cats = cfg.getCategories();
109 for (Category cat: cats)
110 System.out.println(cat);
112 feeds = cfg.getFeeds();
114 System.out.println("Number of feeds: " + feeds.length);
116 System.out.println(f);