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 }
|