package com.hughes.android.dictionary.engine;
+import com.hughes.util.IndexedObject;
-public abstract class AbstractEntry {
+import java.io.IOException;
+import java.io.RandomAccessFile;
- public abstract int addToDictionary(final Dictionary dictionary);
+
+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 void write(RandomAccessFile raf) throws IOException {
+ raf.writeShort(entrySource.index());
+ }
+
+ public abstract void addToDictionary(final Dictionary dictionary);
+
+ public abstract RowBase CreateRow(int rowIndex, Index dictionaryIndex);
+
}