adding doc on search framework
[mir.git] / source / mircoders / localizer / basic / MirBasicProducerAssistantLocalizer.java
index d774733..3c9166f 100755 (executable)
  */
 package mircoders.localizer.basic;
 
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 import mir.config.MirPropertiesConfiguration;
 import mir.entity.adapter.EntityAdapter;
 import mir.entity.adapter.EntityIteratorAdapter;
@@ -37,27 +46,21 @@ import mir.generator.GeneratorExc;
 import mir.generator.GeneratorFailure;
 import mir.log.LoggerWrapper;
 import mir.misc.StringUtil;
-import mir.util.*;
+import mir.util.GeneratorDateTimeFunctions;
+import mir.util.GeneratorFormatAdapters;
 import mir.util.generator.ReflectionGeneratorFunctionsAdapter;
+import mir.util.StringRoutines;
 import mircoders.global.MirGlobal;
 import mircoders.localizer.MirLocalizerExc;
 import mircoders.localizer.MirLocalizerFailure;
 import mircoders.localizer.MirProducerAssistantLocalizer;
+
 import org.w3c.dom.Document;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import org.w3c.tidy.Tidy;
 import org.w3c.tidy.Configuration;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import org.w3c.tidy.Tidy;
 
 public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantLocalizer {
   protected LoggerWrapper logger;
@@ -129,7 +132,8 @@ public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantL
       throw new MirLocalizerFailure(t);
     }
 
-  };
+  }
+  
   public static class getLanguageIdFunction implements Generator.Function {
     private Map languageCodeToId;
     private String otherLanguageId;
@@ -173,7 +177,7 @@ public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantL
       catch (Throwable t) {
         throw new GeneratorFailure("getLanguageIdFunction: " + t.getMessage(), t);
       }
-    };
+    }
   }
 
 
@@ -218,43 +222,18 @@ public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantL
   private boolean checkAttr(String attrName) {
     if (attrName.equals("onLoad") || attrName.equals("onClick") || attrName.equals("onFocus") || attrName.equals("onBlur") || attrName.equals("onMouseOver") || attrName.equals("onMouseOut") || attrName.equals("style") || attrName.equals("STYLE") || attrName.equals("height") || attrName.equals("width") || attrName.equals("HEIGHT") || attrName.equals("WIDTH"))
       return false;
-    else
-      return true;
+               return true;
 
   }
 
   private boolean checkNode(String nodeName) {
-    if (nodeName.equals("a") ||
-        nodeName.equals("img") ||
-        nodeName.equals("h1") ||
-        nodeName.equals("h2") ||
-        nodeName.equals("h3") ||
-        nodeName.equals("h4") ||
-        nodeName.equals("h5") ||
-        nodeName.equals("h6") ||
-        nodeName.equals("br") ||
-        nodeName.equals("form") ||
-        nodeName.equals("input") ||
-        nodeName.equals("hr") ||
-        nodeName.equals("strong") ||
-        nodeName.equals("font") ||
-        nodeName.equals("b") ||
-        nodeName.equals("i") ||
-        nodeName.equals("em") ||
-        nodeName.equals("p") ||
-        nodeName.equals("table") ||
-        nodeName.equals("tr") ||
-        nodeName.equals("td") ||
-        nodeName.equals("th") ||
-        nodeName.equals("ul") ||
-        nodeName.equals("ol") ||
-        nodeName.equals("li")
-    ) {
-      return true;
-    } else {
-
-      return false;
+    List languages =  StringRoutines.splitString(MirGlobal.config().getString("Localizer.HTML.Whitelist"), ",");
+    Iterator i = languages.iterator();
+    while (i.hasNext()) {
+      if (nodeName.equals(i.next()))
+        return true;
     }
+    return false;
   }
 
   private void print(Node node, StringWriter out) throws IOException {
@@ -324,6 +303,7 @@ public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantL
     public Utility () {
       super(new MirBasicUtilityFunctions());
     }
+
     public Object getDatetime() {
       return new GeneratorDateTimeFunctions.DateTimeFunctions(
         MirPropertiesConfiguration.instance().getString("Mir.DefaultTimezone"));