import pnews.Category;
import pnews.Feed;
+import pnews.Language;
public class Config {
private Feed[] feeds;
private Category[] categories;
+ private Language[] languages;
+ /**
+ * The key is the language, the value is the default category for this language.
+ */
+ private Map<String, Category> defaultCategories = new HashMap<>();
private static final Logger LOG = Logger.getLogger(Config.class.getName());
private void loadCategories(JsonArray jcats) {
List<Category> cats;
JsonObject jcat;
+ Category cat;
String id, label, title, language;
cats = new ArrayList<>(jcats.size());
label = jcat.getString("label");
title = jcat.getString("title");
language = jcat.getString("language");
- cats.add(new Category(id, label, title, language));
+ cat = new Category(id, label, title, language);
+ cats.add(cat);
+ if (defaultCategories.get(language) == null)
+ defaultCategories.put(language, cat);
}
categories = cats.toArray(new Category[0]);
}
+
+ private void loadLanguages(JsonArray jlangs) {
+ List<Language> langs;
+ JsonObject jlang;
+ String id;
+
+ langs = new ArrayList<>(jlangs.size());
+
+ for (JsonValue v: jlangs) {
+ jlang = (JsonObject)v;
+ id = jlang.getString("id");
+ langs.add(new Language(id));
+ }
+
+ languages = langs.toArray(new Language[0]);
+ }
private Category getCategory(String id) {
for (Category c: categories)
try { r.close(); } catch (IOException e) { };
}
-
+ loadLanguages(jroot.getJsonArray("languages"));
loadCategories(jroot.getJsonArray("categories"));
jfeeds = jroot.getJsonObject("feeds");
return categories;
}
- public Category getDefaultCategory() {
- return categories[0];
+ public Category getDefaultCategory(Language lang) {
+ return defaultCategories.get(lang.getId());
+ }
+
+ public Language[] getLanguages() {
+ return languages;
+ }
+
+ public Language getDefaultLanguage() {
+ return languages[0];
}
public static void main(String[] args) throws UnsupportedEncodingException {