load languages from configuration file
[pnews.git] / war / src / main / java / pnews / servlet / Config.java
index e4c5fed..09a5457 100644 (file)
@@ -17,11 +17,12 @@ import javax.json.JsonValue;
 
 import pnews.Category;
 import pnews.Feed;
+import pnews.Language;
 
 public class Config {
         private Feed[] feeds;
         private Category[] categories;
-        private final String[] languages = { "fr", "en" };
+        private Language[] languages;
         private static final Logger LOG = Logger.getLogger(Config.class.getName());
                 
         private void loadCategories(JsonArray jcats) {
@@ -42,6 +43,22 @@ public class Config {
                 
                 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)
@@ -65,7 +82,7 @@ public class Config {
                                 try { r.close(); } catch (IOException e) { };
                 }
                 
-                
+                loadLanguages(jroot.getJsonArray("languages"));
                 loadCategories(jroot.getJsonArray("categories"));
                 
                 jfeeds = jroot.getJsonObject("feeds");
@@ -128,11 +145,11 @@ public class Config {
                 return categories[0];
         }
         
-        public String[] getLanguages() {
+        public Language[] getLanguages() {
                 return languages;
         }
         
-        public String getDefaultLanguage() {
+        public Language getDefaultLanguage() {
                 return languages[0];
         }