added support of entity aliases
[pnews.git] / war / src / main / java / pnews / servlet / Config.java
index fec3770..46e75f6 100644 (file)
@@ -28,6 +28,7 @@ public class Config {
         private Category[] categories;
         private Language[] languages;
         private final Set<String> blacklistedEntities = new HashSet<>();
+        private final HashMap<String, String> entityAliases = new HashMap<>();
         private static final String CLASS_NAME = Config.class.getName();
         
         /**
@@ -83,13 +84,13 @@ public class Config {
         }
         
         private void loadEntities(JsonObject jroot) {
-                JsonObject jentities;
+                JsonObject jentities, jaliases;
                 JsonArray jblacklist;
                 final String METHOD_NAME = "loadEntities";
                 
                 jentities = jroot.getJsonObject("entities");
-                jblacklist = jentities.getJsonArray("blacklist");
                 
+                jblacklist = jentities.getJsonArray("blacklist");                
                 jblacklist.forEach((jv)-> {
                         JsonString js;
                         
@@ -97,7 +98,28 @@ public class Config {
                         blacklistedEntities.add(js.getString());
                 });
                 
+                jaliases = jentities.getJsonObject("aliases");
+                jaliases.forEach((k, v)-> {
+                        JsonArray jsources = (JsonArray)v;
+                        
+                        jsources.forEach((jsource)-> {
+                                entityAliases.put(((JsonString)jsource).getString(), k);
+                        });
+                });
+                
                 LOG.logp(Level.FINEST, CLASS_NAME, METHOD_NAME, " blacklistedEntities=" + blacklistedEntities);
+                LOG.logp(Level.FINEST, CLASS_NAME, METHOD_NAME, " entityAliases=" + entityAliases);
+        }
+        
+        public String getEntityAlias(String entity) {
+                String result;
+                
+                result = entityAliases.get(entity);
+                
+                if (result == null)
+                        return entity;
+                else
+                        return result;
         }
         
         public void loadConfig() throws UnsupportedEncodingException {