-Subproject commit 23c6349bd8331e34107a1bcb8e709be1b3ad0bb8
+Subproject commit 1923f0d7df985ebcf5a7bc01d8a2f9ceabd21550
pairEntries = CachingList.create(
RAFList.create(ch, new PairEntry.Serializer(this), ch.position(), dictFileVersion, dictInfo + " pairs: "),
- CACHE_SIZE);
+ CACHE_SIZE, false);
textEntries = CachingList.create(
RAFList.create(ch, new TextEntry.Serializer(this), ch.position(), dictFileVersion, dictInfo + " text: "),
- CACHE_SIZE);
+ CACHE_SIZE, true);
if (dictFileVersion >= 5) {
htmlEntries = CachingList.create(
RAFList.create(ch, new HtmlEntry.Serializer(this, ch), ch.position(), dictFileVersion, dictInfo + " html: "),
- CACHE_SIZE);
+ CACHE_SIZE, true);
} else {
htmlEntries = Collections.emptyList();
}
}
sortedIndexEntries = CachingList.create(
RAFList.create(inp, new IndexEntrySerializer(dict.dictFileVersion == 6 ? inp : null), inp.position(),
- dict.dictFileVersion, dict.dictInfo + " idx " + languageCode + ": "), CACHE_SIZE);
+ dict.dictFileVersion, dict.dictInfo + " idx " + languageCode + ": "), CACHE_SIZE, true);
if (dict.dictFileVersion >= 7) {
int count = StringUtil.readVarInt(raf);
stoplist = new HashSet<String>(count);
}
rows = CachingList.create(
UniformRAFList.create(inp, new RowBase.Serializer(this), inp.position()),
- CACHE_SIZE);
+ CACHE_SIZE, true);
}
@Override
this.htmlEntries = CachingList.create(
RAFList.create(ch, index.dict.htmlEntryIndexSerializer,
ch.position(), index.dict.dictFileVersion,
- index.dict.dictInfo + " htmlEntries: "), 1);
+ index.dict.dictInfo + " htmlEntries: "), 1, false);
} else {
this.htmlEntries = Collections.emptyList();
}
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;
}
}
- static final class Serializer implements RAFListSerializer<PairEntry> {
+ static final class Serializer implements RAFListSerializerSkippable<PairEntry> {
final Dictionary dictionary;
return new PairEntry(dictionary, raf, index);
}
+ @Override
+ public void skip(DataInput raf, int index) throws IOException {
+ final int size;
+ if (dictionary.dictFileVersion >= 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);