LatexList2Text.java
01 package org.qedeq.kernel.se.visitor;
02 
03 import org.qedeq.kernel.se.base.module.Latex;
04 import org.qedeq.kernel.se.base.module.LatexList;
05 
06 /**
07  * Transform latex list into text.
08  *
09  * TODO 20101221 m31: perhaps we should use the Latex2Utf8 converter?
10  *
11  @author  Michael Meyling
12  */
13 public class LatexList2Text {
14 
15     /**
16      * Filters English entry out of LaTeX list.
17      *
18      @param   list    List of LaTeX entries.
19      @return  Selected entry transformed into text.
20      */
21     public String transform(final LatexList list) {
22         return transform(list, "en");
23     }
24 
25     /**
26      * Filters given language entry out of LaTeX list.
27      * Fallback is the default language.
28      *
29      @param   list        List of LaTeX entries.
30      @param   language    Filter for this language.
31      @return  Selected entry transformed into text.
32      */
33     public String transform(final LatexList list, final String language) {
34         if (list == null) {
35             return "";
36         }
37         for (int i = 0; i < list.size(); i++) {
38             if (list.get(i!= null && language.equals(list.get(i).getLanguage())) {
39                 return getLatex(list.get(i));
40             }
41         }
42         // assume entry with missing language as default
43         for (int i = 0; i < list.size(); i++) {
44             if (list.get(i!= null && list.get(i).getLanguage() == null) {
45                 return getLatex(list.get(i));
46             }
47         }
48         for (int i = 0; i < list.size(); i++) {
49             if (list.get(i!= null) {
50                 return getLatex(list.get(i));
51             }
52         }
53         return "";
54     }
55 
56     protected String getLatex(final Latex latex) {
57         String result = latex.getLatex();
58         if (result == null) {
59             result = "";
60         }
61         result = result.trim();
62         result = result.replaceAll("\\\\index\\{.*\\}""");
63         return result.trim();
64     }
65 
66 }