X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FPairEntry.java;h=d3fb060e1dc0570a3d02a326e0283ac8a58382cd;hb=0d6b69d8819c937eed8a911f491146b76a9b1300;hp=6e95d32a203cadf2e5cf5e5585da988a436d8bde;hpb=b51d6d5fd02ee3678dcbd3fcf0678946cc5c86e0;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/engine/PairEntry.java b/src/com/hughes/android/dictionary/engine/PairEntry.java index 6e95d32..d3fb060 100644 --- a/src/com/hughes/android/dictionary/engine/PairEntry.java +++ b/src/com/hughes/android/dictionary/engine/PairEntry.java @@ -14,19 +14,22 @@ package com.hughes.android.dictionary.engine; +import com.hughes.util.StringUtil; import com.hughes.util.raf.RAFListSerializer; +import com.hughes.util.raf.RAFListSerializerSkippable; import com.hughes.util.raf.RAFSerializable; import com.ibm.icu.text.Transliterator; +import java.io.DataInput; +import java.io.DataOutput; import java.io.IOException; import java.io.PrintStream; -import java.io.RandomAccessFile; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; public class PairEntry extends AbstractEntry implements RAFSerializable, - Comparable { + Comparable { public final List pairs; @@ -40,10 +43,10 @@ public class PairEntry extends AbstractEntry implements RAFSerializable= 7 ? StringUtil.readVarInt(raf) : raf.readInt(); pairs = new ArrayList(size); for (int i = 0; i < size; ++i) { pairs.add(new Pair(raf.readUTF(), raf.readUTF())); @@ -51,10 +54,9 @@ public class PairEntry extends AbstractEntry implements RAFSerializable 0; raf.writeUTF(pairs.get(i).lang1); @@ -62,7 +64,7 @@ public class PairEntry extends AbstractEntry implements RAFSerializable { + static final class Serializer implements RAFListSerializerSkippable { final Dictionary dictionary; @@ -71,12 +73,31 @@ public class PairEntry extends AbstractEntry implements RAFSerializable= 7) + { + StringUtil.readVarInt(raf); + size = StringUtil.readVarInt(raf); + } + else + { + raf.skipBytes(2); + size = raf.readInt(); + } + for (int i = 0; i < 2*size; ++i) { + int l = raf.readUnsignedShort(); + raf.skipBytes(l); + } + } + + @Override + public void write(DataOutput raf, PairEntry t) throws IOException { t.write(raf); } } @@ -97,13 +118,13 @@ public class PairEntry extends AbstractEntry implements RAFSerializable searchTokens, - final Pattern orderedMatchPattern, final Transliterator normalizer, - final boolean swapPairEntries) { + final Pattern orderedMatchPattern, final Transliterator normalizer, + final boolean swapPairEntries) { final int side = swapPairEntries ? 1 : 0; final List pairs = getEntry().pairs; final String[] pairSides = new String[pairs.size()]; @@ -212,10 +233,6 @@ public class PairEntry extends AbstractEntry implements RAFSerializable 0 && lang2.trim().length() > 0)) { - System.err.println("poop"); - } - assert lang1.trim().length() > 0 || lang2.trim().length() > 0 : "Empty pair!!!"; assert lang1.trim().length() > 0 && lang2.trim().length() > 0 : "Empty pair!!!"; } @@ -240,5 +257,19 @@ public class PairEntry extends AbstractEntry implements RAFSerializable