X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FTextEntry.java;h=26cdc5586b4fff70a8ca3cefd673e9f60e6c12ca;hb=acfb5ff7f1ab0cafad4bc6a00d854ef829738ae3;hp=d08b450ed92a100ec518f11b0c0a6c3e0a328aea;hpb=bef1056a11983138018973d950aff8af87f3e13a;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/engine/TextEntry.java b/src/com/hughes/android/dictionary/engine/TextEntry.java index d08b450..26cdc55 100644 --- a/src/com/hughes/android/dictionary/engine/TextEntry.java +++ b/src/com/hughes/android/dictionary/engine/TextEntry.java @@ -14,90 +14,92 @@ package com.hughes.android.dictionary.engine; +import com.hughes.util.raf.RAFListSerializer; +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.List; import java.util.regex.Pattern; -import com.hughes.android.dictionary.engine.HtmlEntry.Row; -import com.hughes.util.raf.RAFSerializable; -import com.hughes.util.raf.RAFSerializer; -import com.ibm.icu.text.Transliterator; - public class TextEntry extends AbstractEntry implements RAFSerializable { - - final String text; - - public TextEntry(final Dictionary dictionary, final RandomAccessFile raf) throws IOException { - super(dictionary, raf); - text = raf.readUTF(); - throw new RuntimeException(); - } - @Override - public void write(RandomAccessFile raf) throws IOException { - super.write(raf); - raf.writeUTF(text); - } - - static final class Serializer implements RAFSerializer { - - final Dictionary dictionary; - - Serializer(Dictionary dictionary) { - this.dictionary = dictionary; - } - @Override - public TextEntry read(RandomAccessFile raf) throws IOException { - return new TextEntry(dictionary, raf); + public final String text; + + private TextEntry(final Dictionary dictionary, final DataInput raf, final int index) + throws IOException { + super(dictionary, raf, index); + text = raf.readUTF(); + throw new RuntimeException("TextEntry constructor should be unreachable"); } @Override - public void write(RandomAccessFile raf, TextEntry t) throws IOException { - t.write(raf); + public void write(DataOutput raf) throws IOException { + super.write(raf); + raf.writeUTF(text); } - }; - - - @Override - public int addToDictionary(final Dictionary dictionary) { - dictionary.textEntries.add(this); - return dictionary.textEntries.size() - 1; - } - - @Override - public RowBase CreateRow(int entryIndex, int rowIndex, Index dictionaryIndex) { - throw new UnsupportedOperationException("TextEntry's don't really exist."); - } - - public static class Row extends RowBase { - - Row(final RandomAccessFile raf, final int thisRowIndex, - final Index index) throws IOException { - super(raf, thisRowIndex, index); - } - - public TextEntry getEntry() { - return index.dict.textEntries.get(referenceIndex); - } - - @Override - public void print(PrintStream out) { - out.println(" " + getEntry().text); + + static final class Serializer implements RAFListSerializer { + + final Dictionary dictionary; + + Serializer(Dictionary dictionary) { + this.dictionary = dictionary; + } + + @Override + public TextEntry read(DataInput raf, final int index) throws IOException { + return new TextEntry(dictionary, raf, index); + } + + @Override + public void write(DataOutput raf, TextEntry t) throws IOException { + t.write(raf); + } } @Override - public String getRawText(boolean compact) { - return getEntry().text; + public void addToDictionary(final Dictionary dictionary) { + assert index == -1; + dictionary.textEntries.add(this); + index = dictionary.textEntries.size() - 1; } - + @Override - public RowMatchType matches(final List searchTokens, final Pattern orderedMatchPattern, Transliterator normalizer, boolean swapPairEntries) { - return null; + public RowBase CreateRow(int rowIndex, Index dictionaryIndex) { + throw new UnsupportedOperationException("TextEntry's don't really exist."); } - } + public static class Row extends RowBase { + Row(final DataInput raf, final int thisRowIndex, + final Index index, int extra) throws IOException { + super(raf, thisRowIndex, index, extra); + } + + TextEntry getEntry() { + return index.dict.textEntries.get(referenceIndex); + } + + @Override + public void print(PrintStream out) { + out.println(" " + getEntry().text); + } + + @Override + public String getRawText(boolean compact) { + return getEntry().text; + } + + @Override + public RowMatchType matches(final List searchTokens, + final Pattern orderedMatchPattern, Transliterator normalizer, + boolean swapPairEntries) { + return null; + } + } }