]> gitweb.fperrin.net Git - Dictionary.git/blob - src/com/hughes/android/dictionary/Entry.java
d04722f273e4f1db3b15db5c9717fbea503b3e48
[Dictionary.git] / src / com / hughes / android / dictionary / Entry.java
1 package com.hughes.android.dictionary;\r
2 \r
3 import java.util.regex.Pattern;\r
4 \r
5 public final class Entry {\r
6 \r
7   static final byte LANG1 = 0;\r
8   static final byte LANG2 = 1;\r
9 \r
10   static final Pattern lineSplitPattern = Pattern.compile("\\s+::\\s+");\r
11 \r
12   String lang1 = "";\r
13   String lang2 = "";\r
14 \r
15   Entry() {}\r
16 \r
17   Entry(final String line) {\r
18     final boolean parsed = parseFromLine(line);\r
19     assert parsed;\r
20   }\r
21 \r
22   boolean parseFromLine(final String line) {\r
23     final String[] parts = lineSplitPattern.split(line);\r
24     if (parts.length != 2) {\r
25       System.err.println("Entry:" + "Invalid line: " + line);\r
26       return false;\r
27     }\r
28     lang1 = parts[0];\r
29     lang2 = parts[1];\r
30     return true;\r
31   }\r
32 \r
33   String getAllText(final byte lang) {\r
34     if (lang == LANG1) {\r
35       return lang1;\r
36     }\r
37     assert lang == LANG2;\r
38     return lang2;\r
39   }\r
40   \r
41   String getIndexableText(final byte lang) {\r
42     String text = getAllText(lang);\r
43     text = text.replaceAll("[\"\\.!?,]", "");\r
44     text = text.replaceAll("\\{[^}]+\\}", "");\r
45     return text;\r
46   }\r
47 \r
48   public Object getFormattedEntry(final byte lang) {\r
49     return getAllText(lang) + "\n" + getAllText(OtherLang(lang));\r
50   }\r
51 \r
52   private byte OtherLang(final byte lang) {\r
53     assert lang == LANG1 || lang == LANG2;\r
54     return lang == LANG1 ? LANG2 : LANG1;\r
55   }\r
56 \r
57   public String getRawText() {\r
58     return getAllText(LANG1) + " :: " + getAllText(LANG2);\r
59   }\r
60 \r
61 }\r