]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/engine/Index.java
Remove last Java-deserialization based code.
[Dictionary.git] / src / com / hughes / android / dictionary / engine / Index.java
index db44b41546569ee39e178511fdbf5f5bf92b4bea..5b7b43d5aadd20a39a3de5e047b3ca348cdd7b83 100644 (file)
@@ -41,13 +41,11 @@ import com.hughes.util.DataInputBuffer;
 import com.hughes.util.StringUtil;
 import com.hughes.util.TransformingList;
 import com.hughes.util.raf.RAFList;
-import com.hughes.util.raf.RAFSerializable;
 import com.hughes.util.raf.RAFSerializer;
-import com.hughes.util.raf.SerializableSerializer;
 import com.hughes.util.raf.UniformRAFList;
 import com.ibm.icu.text.Transliterator;
 
-public final class Index implements RAFSerializable<Index> {
+public final class Index {
 
     private static final int CACHE_SIZE = 5000;
 
@@ -138,7 +136,14 @@ public final class Index implements RAFSerializable<Index> {
                 stoplist.add(raf.readUTF());
             }
         } else if (dict.dictFileVersion >= 4) {
-            stoplist = new SerializableSerializer<Set<String>>().read(raf);
+            raf.readInt(); // length
+            raf.skipBytes(52);
+            stoplist = new HashSet<>();
+            byte b;
+            while ((b = raf.readByte()) == 0x74) {
+                stoplist.add(raf.readUTF());
+            }
+            if (b != 0x78) throw new IOException("Invalid data in dictionary stoplist!");
         } else {
             stoplist = Collections.emptySet();
         }
@@ -147,7 +152,6 @@ public final class Index implements RAFSerializable<Index> {
                    CACHE_SIZE, true);
     }
 
-    @Override
     public void write(final DataOutput out) throws IOException {
         RandomAccessFile raf = (RandomAccessFile)out;
         raf.writeUTF(shortName);
@@ -182,7 +186,7 @@ public final class Index implements RAFSerializable<Index> {
         }
     }
 
-    public static final class IndexEntry implements RAFSerializable<Index.IndexEntry> {
+    public static final class IndexEntry {
         public final String token;
         private final String normalizedToken;
         public final int startRow;
@@ -225,6 +229,7 @@ public final class Index implements RAFSerializable<Index> {
                         public HtmlEntry get(int i) {
                             return index.dict.htmlEntries.get(htmlEntryIndices[i]);
                         }
+
                         @Override
                         public int size() {
                             return htmlEntryIndices.length;
@@ -367,7 +372,7 @@ public final class Index implements RAFSerializable<Index> {
         return result;
     }
 
-    private final int windBackCase(final String token, int result, final AtomicBoolean interrupted) {
+    private int windBackCase(final String token, int result, final AtomicBoolean interrupted) {
         while (result > 0 && sortedIndexEntries.get(result - 1).normalizedToken().equals(token)) {
             --result;
             if (interrupted.get()) {
@@ -385,8 +390,8 @@ public final class Index implements RAFSerializable<Index> {
 
     private final Map<String, Integer> prefixToNumRows = new HashMap<>();
 
-    private synchronized final int getUpperBoundOnRowsStartingWith(final String normalizedPrefix,
-            final int maxRows, final AtomicBoolean interrupted) {
+    private synchronized int getUpperBoundOnRowsStartingWith(final String normalizedPrefix,
+                                                             final int maxRows, final AtomicBoolean interrupted) {
         final Integer numRows = prefixToNumRows.get(normalizedPrefix);
         if (numRows != null) {
             return numRows;
@@ -525,7 +530,7 @@ public final class Index implements RAFSerializable<Index> {
             swapPairEntries);
         for (final Collection<RowBase> rows : matches.values()) {
             final List<RowBase> ordered = new ArrayList<>(rows);
-            Collections.sort(ordered, lengthComparator);
+            ordered.sort(lengthComparator);
             result.addAll(ordered);
         }