package pnews;
public class Language {
- public static String toURL(String l) {
- return "/" + l + "/";
+ private final String id;
+
+ public Language(String id) {
+ this.id = id;
+ }
+
+ public String toURL() {
+ return "/" + id;
+ }
+
+ public String getLabel() {
+ return id;
}
}
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) {
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[0];
}
- public String[] getLanguages() {
+ public Language[] getLanguages() {
return languages;
}
- public String getDefaultLanguage() {
+ public Language getDefaultLanguage() {
return languages[0];
}
}
if (path.equals("/")) {
- doTemporaryRedirect(Language.toURL(config.getDefaultLanguage()), resp);
+ doTemporaryRedirect(config.getDefaultLanguage().toURL(), resp);
return ;
}
}
}
- for (String l: config.getLanguages()) {
- if (path.equals("/" + l) || path.equals("/" + l + "/")) {
+ for (Language l: config.getLanguages()) {
+ if (path.equals(l.toURL())) {
doTemporaryRedirect(config.getDefaultCategory().getURL(), resp);
return ;
}