1 package com.hughes.android.dictionary;
\r
3 import java.util.regex.Pattern;
\r
5 public final class Entry {
\r
7 static final byte LANG1 = 0;
\r
8 static final byte LANG2 = 1;
\r
10 static final Pattern lineSplitPattern = Pattern.compile("\\s+::\\s+");
\r
17 Entry(final String line) {
\r
18 final boolean parsed = parseFromLine(line);
\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
33 String getAllText(final byte lang) {
\r
34 if (lang == LANG1) {
\r
37 assert lang == LANG2;
\r
41 String getIndexableText(final byte lang) {
\r
42 String text = getAllText(lang);
\r
43 text = text.replaceAll("[\"\\.!?,]", "");
\r
44 text = text.replaceAll("\\{[^}]+\\}", "");
\r
48 public String normalizeToken(final String token, final byte lang) {
\r
49 return token.toLowerCase().replaceAll("ß", "ss").replaceAll("ä", "ae")
\r
50 .replaceAll("ö", "oe").replaceAll("ü", "ue")
\r
51 .replaceAll("[^A-Za-z]", "");
\r
54 public Object getFormattedEntry(final byte lang) {
\r
55 return getAllText(lang) + "\n" + getAllText(OtherLang(lang));
\r
58 private byte OtherLang(final byte lang) {
\r
59 assert lang == LANG1 || lang == LANG2;
\r
60 return lang == LANG1 ? LANG2 : LANG1;
\r