Initial revision
[mir.git] / source / mir / servlet / AbstractServlet.java
diff --git a/source/mir/servlet/AbstractServlet.java b/source/mir/servlet/AbstractServlet.java
new file mode 100755 (executable)
index 0000000..c859872
--- /dev/null
@@ -0,0 +1,75 @@
+package mir.servlet;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.io.File;
+import java.util.Locale;
+
+import mir.misc.HTMLTemplateProcessor;
+import mir.misc.Configuration;
+import mir.misc.Logfile;
+
+/**
+ * Title:        Mir
+ * Description:  Abstract servlet-class
+ * Copyright:    Copyright (c) 2001
+ * Company:      Indymedia
+ * @author       idfx
+ * @version 1.0
+ */
+
+public abstract class AbstractServlet extends HttpServlet {
+  protected static String lang;
+  protected static Logfile theLog;
+
+  /**
+   * get the configration
+   */
+  protected boolean getConfig(HttpServletRequest req) {
+               Configuration.initConfig(getInitParameter("Config"));
+               theLog = Logfile.getInstance(Configuration.getProperty("Home") + Configuration.getProperty("Mir.Logfile"));
+               theLog.printInfo(super.getServletName() + " started.");
+               return true;
+       }
+
+  /**
+   * Bind the language to the session
+   */
+  protected void setLanguage(HttpServletRequest req, String language){
+    HttpSession session = req.getSession();
+    session.setAttribute("Language",language);
+  }
+
+  /**
+   * Get the session-binded language
+   */
+  protected String getLanguage(HttpServletRequest req){
+    HttpSession session = req.getSession();
+    String lang = (String)session.getAttribute("Language");
+    if(lang==null || lang==""){
+      return getAcceptLanguage(req);
+    } else {
+                       return lang;
+               }
+  }
+
+  /**
+   * Checks the Accept-Language of the clients browser.
+   * if this language is available it returns its contry-code,
+   * else it return the standard-language
+   */
+  protected String getAcceptLanguage(HttpServletRequest req){
+    Locale loc = req.getLocale();
+    lang = loc.getLanguage();
+    File f = new File(HTMLTemplateProcessor.templateDir+"/"+lang);
+    //is there an existing template-path?
+    if(!f.isDirectory()){
+      //no there isn't. we use standard-language
+      lang = Configuration.getProperty("StandardLanguage");
+      theLog.printDebugInfo("language not existing");
+    }
+    theLog.printDebugInfo("Language: " + lang);
+    return lang;
+  }
+}
\ No newline at end of file