X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FDictionary.java;h=cde3eb9ca04fd521f1575a2f1a5294fecb928401;hb=a82db103035d624c4f6d333a0143d54495d66ba2;hp=0eb8007f07f9307fe0f44306e980d3f4f546d57b;hpb=83d497f704ad1f8ba85190255d46a3fbe0e3c353;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/engine/Dictionary.java b/src/com/hughes/android/dictionary/engine/Dictionary.java index 0eb8007..cde3eb9 100644 --- a/src/com/hughes/android/dictionary/engine/Dictionary.java +++ b/src/com/hughes/android/dictionary/engine/Dictionary.java @@ -14,36 +14,37 @@ package com.hughes.android.dictionary.engine; -import com.hughes.android.dictionary.DictionaryInfo; -import com.hughes.util.CachingList; -import com.hughes.util.StringUtil; -import com.hughes.util.raf.RAFList; -import com.hughes.util.raf.RAFListSerializer; -import com.hughes.util.raf.RAFSerializable; - import java.io.DataInput; import java.io.DataInputStream; import java.io.DataOutput; import java.io.File; import java.io.IOException; +import java.io.ObjectOutputStream; import java.io.PrintStream; import java.io.RandomAccessFile; import java.nio.channels.Channels; import java.nio.channels.FileChannel; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import com.hughes.android.dictionary.DictionaryInfo; +import com.hughes.util.CachingList; +import com.hughes.util.raf.RAFList; +import com.hughes.util.raf.RAFListSerializer; +import com.hughes.util.raf.RAFSerializable; + public class Dictionary implements RAFSerializable { - static final int CACHE_SIZE = 5000; + private static final int CACHE_SIZE = 5000; - static final int CURRENT_DICT_VERSION = 7; - static final String END_OF_DICTIONARY = "END OF DICTIONARY"; + private static final int CURRENT_DICT_VERSION = 7; + private static final String END_OF_DICTIONARY = "END OF DICTIONARY"; // persisted final int dictFileVersion; - final long creationMillis; + public final long creationMillis; public final String dictInfo; public final List pairEntries; public final List textEntries; @@ -61,12 +62,12 @@ public class Dictionary implements RAFSerializable { this.dictFileVersion = CURRENT_DICT_VERSION; this.creationMillis = System.currentTimeMillis(); this.dictInfo = dictInfo; - pairEntries = new ArrayList(); - textEntries = new ArrayList(); - htmlEntries = new ArrayList(); + pairEntries = new ArrayList<>(); + textEntries = new ArrayList<>(); + htmlEntries = new ArrayList<>(); htmlData = null; - sources = new ArrayList(); - indices = new ArrayList(); + sources = new ArrayList<>(); + indices = new ArrayList<>(); } public Dictionary(final FileChannel ch) throws IOException { @@ -83,7 +84,7 @@ public class Dictionary implements RAFSerializable { try { final RAFList rafSources = RAFList.create(ch, new EntrySource.Serializer( this), ch.position(), dictFileVersion, dictInfo + " sources: "); - sources = new ArrayList(rafSources); + sources = new ArrayList<>(rafSources); ch.position(rafSources.getEndOffset()); pairEntries = CachingList.create( @@ -107,8 +108,7 @@ public class Dictionary implements RAFSerializable { indices = CachingList.createFullyCached(RAFList.create(ch, new IndexSerializer(ch), ch.position(), dictFileVersion, dictInfo + " index: ")); } catch (RuntimeException e) { - final IOException ioe = new IOException("RuntimeException loading dictionary", e); - throw ioe; + throw new IOException("RuntimeException loading dictionary", e); } final String end = raf.readUTF(); if (!end.equals(END_OF_DICTIONARY)) { @@ -119,6 +119,7 @@ public class Dictionary implements RAFSerializable { @Override public void write(DataOutput out) throws IOException { RandomAccessFile raf = (RandomAccessFile)out; + if (dictFileVersion < 7) throw new RuntimeException("write function cannot write formats older than v7!"); raf.writeInt(dictFileVersion); raf.writeLong(creationMillis); raf.writeUTF(dictInfo); @@ -142,7 +143,7 @@ public class Dictionary implements RAFSerializable { private final class IndexSerializer implements RAFListSerializer { private final FileChannel ch; - public IndexSerializer(FileChannel ch) { + IndexSerializer(FileChannel ch) { this.ch = ch; }