X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FAbstractEntry.java;h=4563017bcc2a15afc44c0bcaf6c439c8311524ab;hb=8674b09eae371994e01e0af541b546fced86c366;hp=f5d0c8d51e27565ba9192d6d3f8c06bce502937f;hpb=73e7eb689ac430af2ee2952cb0ec485f6ec2b1e0;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/engine/AbstractEntry.java b/src/com/hughes/android/dictionary/engine/AbstractEntry.java index f5d0c8d..4563017 100644 --- a/src/com/hughes/android/dictionary/engine/AbstractEntry.java +++ b/src/com/hughes/android/dictionary/engine/AbstractEntry.java @@ -14,37 +14,39 @@ package com.hughes.android.dictionary.engine; -import com.hughes.util.IndexedObject; - +import java.io.DataInput; +import java.io.DataOutput; import java.io.IOException; -import java.io.RandomAccessFile; +import com.hughes.util.IndexedObject; +import com.hughes.util.StringUtil; public abstract class AbstractEntry extends IndexedObject { - - public final EntrySource entrySource; - - protected AbstractEntry(EntrySource entrySource) { - super(-1); - this.entrySource = entrySource; - } - - public AbstractEntry(Dictionary dictionary, RandomAccessFile raf, final int index) throws IOException { - super(index); - if (dictionary.dictFileVersion >= 1) { - final int entrySouceIdx = raf.readShort(); - this.entrySource = dictionary.sources.get(entrySouceIdx); - } else { - this.entrySource = null; + + public final EntrySource entrySource; + + AbstractEntry(EntrySource entrySource) { + super(-1); + this.entrySource = entrySource; + } + + AbstractEntry(Dictionary dictionary, DataInput raf, final int index) + throws IOException { + super(index); + if (dictionary.dictFileVersion >= 1) { + final int entrySourceIdx = dictionary.dictFileVersion >= 7 ? StringUtil.readVarInt(raf) : raf.readShort(); + this.entrySource = dictionary.sources.get(entrySourceIdx); + } else { + this.entrySource = null; + } } - } - public void write(RandomAccessFile raf) throws IOException { - raf.writeShort(entrySource.index()); - } + void write(DataOutput raf) throws IOException { + StringUtil.writeVarInt(raf, entrySource.index()); + } - public abstract void addToDictionary(final Dictionary dictionary); + public abstract void addToDictionary(final Dictionary dictionary); - public abstract RowBase CreateRow(int rowIndex, Index dictionaryIndex); + public abstract RowBase CreateRow(int rowIndex, Index dictionaryIndex); }