]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/Entry.java
go
[Dictionary.git] / src / com / hughes / android / dictionary / Entry.java
old mode 100755 (executable)
new mode 100644 (file)
index d04722f..b5ba715
@@ -1,61 +1,22 @@
-package com.hughes.android.dictionary;\r
-\r
-import java.util.regex.Pattern;\r
-\r
-public final class Entry {\r
-\r
-  static final byte LANG1 = 0;\r
-  static final byte LANG2 = 1;\r
-\r
-  static final Pattern lineSplitPattern = Pattern.compile("\\s+::\\s+");\r
-\r
-  String lang1 = "";\r
-  String lang2 = "";\r
-\r
-  Entry() {}\r
-\r
-  Entry(final String line) {\r
-    final boolean parsed = parseFromLine(line);\r
-    assert parsed;\r
-  }\r
-\r
-  boolean parseFromLine(final String line) {\r
-    final String[] parts = lineSplitPattern.split(line);\r
-    if (parts.length != 2) {\r
-      System.err.println("Entry:" + "Invalid line: " + line);\r
-      return false;\r
-    }\r
-    lang1 = parts[0];\r
-    lang2 = parts[1];\r
-    return true;\r
-  }\r
-\r
-  String getAllText(final byte lang) {\r
-    if (lang == LANG1) {\r
-      return lang1;\r
-    }\r
-    assert lang == LANG2;\r
-    return lang2;\r
-  }\r
-  \r
-  String getIndexableText(final byte lang) {\r
-    String text = getAllText(lang);\r
-    text = text.replaceAll("[\"\\.!?,]", "");\r
-    text = text.replaceAll("\\{[^}]+\\}", "");\r
-    return text;\r
-  }\r
-\r
-  public Object getFormattedEntry(final byte lang) {\r
-    return getAllText(lang) + "\n" + getAllText(OtherLang(lang));\r
-  }\r
-\r
-  private byte OtherLang(final byte lang) {\r
-    assert lang == LANG1 || lang == LANG2;\r
-    return lang == LANG1 ? LANG2 : LANG1;\r
-  }\r
-\r
-  public String getRawText() {\r
-    return getAllText(LANG1) + " :: " + getAllText(LANG2);\r
-  }\r
-\r
-}\r
+package com.hughes.android.dictionary;
+
+import java.io.IOException;
+import java.io.RandomAccessFile;
+
+import com.hughes.util.raf.RAFFactory;
+import com.hughes.util.raf.RAFSerializable;
+
+public interface Entry extends RAFSerializable<Entry> {
+  
+  public static final RAFFactory<Entry> RAF_FACTORY = new RAFFactory<Entry>() {
+    public Entry create(RandomAccessFile raf) throws IOException {
+      final byte type = raf.readByte();
+      switch (type) {
+      case 0:
+        return SimpleEntry.RAF_FACTORY.create(raf);
+      }
+      throw new RuntimeException("Invalid entry type: " + type);
+    }};
+    
+  
+}