X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=war%2Fsrc%2Fmain%2Fjava%2Fpnews%2Fservlet%2FConfig.java;h=bafb60690084056cf5e6e27d76cef47f4681d089;hb=08ed43939f542770afa3c47522ec914cd300feba;hp=7e2b6424629d1e9b9e0ae1ffae9124592706fcfd;hpb=180bf164e8751ae680b27be5302c681b955eba76;p=pnews.git diff --git a/war/src/main/java/pnews/servlet/Config.java b/war/src/main/java/pnews/servlet/Config.java index 7e2b642..bafb606 100644 --- a/war/src/main/java/pnews/servlet/Config.java +++ b/war/src/main/java/pnews/servlet/Config.java @@ -17,15 +17,22 @@ import javax.json.JsonValue; 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 defaultCategories = new HashMap<>(); private static final Logger LOG = Logger.getLogger(Config.class.getName()); private void loadCategories(JsonArray jcats) { List cats; JsonObject jcat; + Category cat; String id, label, title, language; cats = new ArrayList<>(jcats.size()); @@ -36,11 +43,30 @@ public class Config { 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 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) @@ -64,7 +90,7 @@ public class Config { try { r.close(); } catch (IOException e) { }; } - + loadLanguages(jroot.getJsonArray("languages")); loadCategories(jroot.getJsonArray("categories")); jfeeds = jroot.getJsonObject("feeds"); @@ -123,8 +149,16 @@ public class Config { 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 {