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 getFormattedEntry(final byte lang) {
\r
49 return getAllText(lang) + "\n" + getAllText(OtherLang(lang));
\r
52 private byte OtherLang(final byte lang) {
\r
53 assert lang == LANG1 || lang == LANG2;
\r
54 return lang == LANG1 ? LANG2 : LANG1;
\r
57 public String getRawText() {
\r
58 return getAllText(LANG1) + " :: " + getAllText(LANG2);
\r