diff software/mpdl-services/mpiwg-mpdl-lt/src/de/mpg/mpiwg/berlin/mpdl/lt/morph/app/MorphologyCache.java @ 20:7d6d969b10cf

little corrections
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Wed, 14 Dec 2011 12:48:43 +0100
parents 4a3641ae14d2
children e845310098ba
line wrap: on
line diff
--- a/software/mpdl-services/mpiwg-mpdl-lt/src/de/mpg/mpiwg/berlin/mpdl/lt/morph/app/MorphologyCache.java	Wed Nov 09 15:32:05 2011 +0100
+++ b/software/mpdl-services/mpiwg-mpdl-lt/src/de/mpg/mpiwg/berlin/mpdl/lt/morph/app/MorphologyCache.java	Wed Dec 14 12:48:43 2011 +0100
@@ -64,14 +64,19 @@
     LOGGER.info("Morphology db cache: closed");
   }
 
-  public ArrayList<Lemma> getLemmasByFormName(String lang, String formNameArg, boolean normalize) throws ApplicationException {
+  /*
+  public ArrayList<Lemma> getLemmasByFormName(String lang, String formName, boolean normalize) throws ApplicationException {
+    return getLemmasByFormName(lang, formName, normalize, Normalizer.DISPLAY);
+  }
+  */
+  
+  public ArrayList<Lemma> getLemmasByFormName(String lang, String formNameArg, int normMode) throws ApplicationException {
     String language = Language.getInstance().getLanguageId(lang);
     ArrayList<Lemma> retFormLemmas = null;
     String formName = formNameArg;
-    if (normalize) {
-      Normalizer normalizer = new Normalizer(language);
-      formName = normalizer.normalize(formNameArg);
-    }
+    Normalizer normalizer = new Normalizer(language);
+    normalizer.setNormMode(normMode);
+    formName = normalizer.normalize(formNameArg);
     // first look in local cache
     String key = language + "###" + formName;
     Hashtable<String, Lemma> formLemmasHashtable = forms.get(key);
@@ -114,13 +119,12 @@
     return retFormLemmas;
   }
   
-  public Lemma getLemma(String lang, String lemmaNameArg, boolean normalize) throws ApplicationException {
+  public Lemma getLemma(String lang, String lemmaNameArg, int normMode) throws ApplicationException {
     String language = Language.getInstance().getLanguageId(lang);
     String lemmaName = lemmaNameArg;
-    if (normalize) {
-      Normalizer normalizer = new Normalizer(language);
-      lemmaName = normalizer.normalize(lemmaNameArg);
-    }
+    Normalizer normalizer = new Normalizer(language);
+    normalizer.setNormMode(normMode);
+    lemmaName = normalizer.normalize(lemmaNameArg);
     // first look in local cache
     String key = language + "###" + lemmaName;
     Lemma lemma = lemmas.get(key);
@@ -138,7 +142,7 @@
     return lemma;
   }
   
-  public ArrayList<Form> getFormsByLuceneQuery(String lang, String luceneQueryString, boolean normalize) throws ApplicationException {
+  public ArrayList<Form> getFormsByLuceneQuery(String lang, String luceneQueryString, int normMode) throws ApplicationException {
     String language = Language.getInstance().getLanguageId(lang);
     ArrayList<Form> result = new ArrayList<Form>();
     luceneQueryString = luceneQueryString.toLowerCase();
@@ -146,19 +150,18 @@
     if (! (formsFromQuery == null || formsFromQuery.isEmpty())) {
       for (int i=0; i<formsFromQuery.size(); i++) {
         String formStr = formsFromQuery.get(i);
-        if (normalize) {
-          Normalizer normalizer = new Normalizer(language);
-          formStr = normalizer.normalize(formStr);
-        }
+        Normalizer normalizer = new Normalizer(language);
+        normalizer.setNormMode(normMode);
+        formStr = normalizer.normalize(formStr);
         ArrayList<Lemma> formLemmas = null;
         // lemma mode: if formName contains "lemmalemma" then the lemma itself is fetched
         if (formStr.startsWith("lemmalemma")) {
           formLemmas = new ArrayList<Lemma>();
           String lemmaName = formStr.substring(10);
-          Lemma lemma = getLemma(language, lemmaName, false);
+          Lemma lemma = getLemma(language, lemmaName, Normalizer.NONE);
           formLemmas.add(lemma);
         } else {
-          formLemmas = getLemmasByFormName(language, formStr, false);
+          formLemmas = getLemmasByFormName(language, formStr, normMode);
         }
         if (formLemmas != null && ! formLemmas.isEmpty()) {
           for (int j=0; j<formLemmas.size(); j++) {
@@ -172,7 +175,7 @@
     return result;
   }
 
-  public ArrayList<Lemma> getLemmasByLuceneQuery(String lang, String luceneQueryString, boolean normalize) throws ApplicationException {
+  public ArrayList<Lemma> getLemmasByLuceneQuery(String lang, String luceneQueryString, int normMode) throws ApplicationException {
     String language = Language.getInstance().getLanguageId(lang);
     Hashtable<String, Lemma> lemmas = new Hashtable<String, Lemma>();
     luceneQueryString = luceneQueryString.toLowerCase();
@@ -180,19 +183,18 @@
     if (! (formsFromQuery == null || formsFromQuery.isEmpty())) {
       for (int i=0; i<formsFromQuery.size(); i++) {
         String formStr = formsFromQuery.get(i);
-        if (normalize) {
-          Normalizer normalizer = new Normalizer(language);
-          formStr = normalizer.normalize(formStr);
-        }
+        Normalizer normalizer = new Normalizer(language);
+        normalizer.setNormMode(normMode);
+        formStr = normalizer.normalize(formStr);
         ArrayList<Lemma> formLemmas = null;
         // lemma mode: if formName starts with "lemmalemma" then the lemma itself is fetched
         if (formStr.startsWith("lemmalemma")) {
           formLemmas = new ArrayList<Lemma>();
           String lemmaName = formStr.substring(10);
-          Lemma lemma = getLemma(language, lemmaName, false);
+          Lemma lemma = getLemma(language, lemmaName, Normalizer.NONE);
           formLemmas.add(lemma);
         } else {
-          formLemmas = getLemmasByFormName(language, formStr, false);
+          formLemmas = getLemmasByFormName(language, formStr, normMode);
         }
         if (formLemmas != null) {
           for (int j=0; j<formLemmas.size(); j++) {
@@ -223,13 +225,13 @@
     Hashtable<String, String> indexKeys = new Hashtable<String, String>();
     for (int j=0; j<lemmaNames.size(); j++) {
       String lemmaName = lemmaNames.get(j);
-      Lemma lemma = getLemma(language, lemmaName, false);
+      Lemma lemma = getLemma(language, lemmaName, Normalizer.NONE);
       indexKeys.put(lemmaName, lemmaName);
       if (lemma != null) {
         ArrayList<Form> lemmaForms = lemma.getFormsList();
         for (int k=0; k<lemmaForms.size(); k++) {
           Form form = lemmaForms.get(k);
-          ArrayList<Lemma> fLemmas = getLemmasByFormName(language, form.getFormName(), false);
+          ArrayList<Lemma> fLemmas = getLemmasByFormName(language, form.getFormName(), Normalizer.NONE);
           if (fLemmas != null) {
             String indexKey = "";
             if (fLemmas.size() == 1) {