X-Git-Url: http://gitweb.fperrin.net/?p=Dictionary.git;a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2FDictionaryInfo.java;h=4a135202322014530939e5d3e94822b4334eb931;hp=e965994a2251e3f294b09d294603896ea890a23c;hb=e79165503392ed6a7cb7a8eadc15eaae0cda9443;hpb=00fb6fcb966f25e64a14e64491e2c417801128d8 diff --git a/src/com/hughes/android/dictionary/DictionaryInfo.java b/src/com/hughes/android/dictionary/DictionaryInfo.java index e965994..4a13520 100644 --- a/src/com/hughes/android/dictionary/DictionaryInfo.java +++ b/src/com/hughes/android/dictionary/DictionaryInfo.java @@ -16,86 +16,90 @@ package com.hughes.android.dictionary; import java.io.Serializable; import java.util.ArrayList; -import java.util.List; public class DictionaryInfo implements Serializable { - - private static final long serialVersionUID = -6850863377577700388L; - - public static final class IndexInfo { - public IndexInfo(String langIso, int allTokenCount, int mainTokenCount) { - this.langIso = langIso; - this.allTokenCount = allTokenCount; - this.mainTokenCount = mainTokenCount; - } - public final String langIso; - public final int allTokenCount; - public final int mainTokenCount; - - public static final int SIZE = 3; - - public StringBuilder append(StringBuilder result) { - result.append("\t").append(langIso); - result.append("\t").append(allTokenCount); - result.append("\t").append(mainTokenCount); - return result; - } - public IndexInfo(final String[] fields, int i) { - langIso = fields[i++]; - allTokenCount = Integer.parseInt(fields[i++]); - mainTokenCount = Integer.parseInt(fields[i++]); + private static final long serialVersionUID = -6850863377577700388L; + + public static final class IndexInfo implements Serializable { + private static final long serialVersionUID = 6524751236198309438L; + + static final int NUM_CSV_FIELDS = 3; + + public final String shortName; // Often LangISO. + final int allTokenCount; + public final int mainTokenCount; + + public IndexInfo(String shortName, int allTokenCount, int mainTokenCount) { + this.shortName = shortName; + this.allTokenCount = allTokenCount; + this.mainTokenCount = mainTokenCount; + } + + void append(StringBuilder result) { + result.append(shortName); + result.append("\t").append(allTokenCount); + result.append("\t").append(mainTokenCount); + } + + public IndexInfo(final String[] fields, int i) { + shortName = fields[i++]; + allTokenCount = Integer.parseInt(fields[i++]); + mainTokenCount = Integer.parseInt(fields[i++]); + } } - } - - // Stuff populated from the text file. - public String uncompressedFilename; - public String downloadUrl; - public long uncompressedSize; - public long creationMillis; - public String dictInfo; - public final List indexInfos = new ArrayList(); - - String name; // Determined at runtime based on locale on device--user editable? - String localFile; // Determined based on device's Environment. - - public StringBuilder append(final StringBuilder result) { - result.append(uncompressedFilename).append("\t"); - result.append(downloadUrl).append("\t"); - result.append(creationMillis).append("\t"); - result.append(uncompressedSize).append("\t"); - result.append(dictInfo).append("\t"); - result.append(indexInfos.size()).append("\t"); - for (final IndexInfo indexInfo : indexInfos) { - indexInfo.append(result); + // Stuff populated from the text file. + public String uncompressedFilename; // used as a key throughout the program. + public String downloadUrl; + public long uncompressedBytes; + public long zipBytes; + public long creationMillis; + public final ArrayList indexInfos = new ArrayList<>(); + public String dictInfo; + + public DictionaryInfo() { + // Blank object. } - return result; - } - - public DictionaryInfo(final String line) { - final String[] fields = line.split("\t"); - int i = 0; - uncompressedFilename = fields[i++]; - downloadUrl = fields[i++]; - creationMillis = Long.parseLong(fields[i++]); - uncompressedSize = Long.parseLong(fields[i++]); - dictInfo = fields[i++]; - final int size = Integer.parseInt(fields[i++]); - for (int j = 0; j < size; ++j) { - indexInfos.add(new IndexInfo(fields, i)); - i += IndexInfo.SIZE; + + public boolean isValid() { + return !indexInfos.isEmpty(); } - } - public DictionaryInfo() { - // Blank object. - } + public StringBuilder append(final StringBuilder result) { + result.append(uncompressedFilename); + result.append("\t").append(downloadUrl); + result.append("\t").append(creationMillis); + result.append("\t").append(uncompressedBytes); + result.append("\t").append(zipBytes); + result.append("\t").append(indexInfos.size()); + for (final IndexInfo indexInfo : indexInfos) { + indexInfo.append(result.append("\t")); + } + result.append("\t").append(dictInfo.replace("\n", "\\\\n")); + return result; + } - @Override - public String toString() { - return name; - } + public DictionaryInfo(final String line) { + final String[] fields = line.split("\t"); + int i = 0; + uncompressedFilename = fields[i++]; + downloadUrl = fields[i++]; + creationMillis = Long.parseLong(fields[i++]); + uncompressedBytes = Long.parseLong(fields[i++]); + zipBytes = Long.parseLong(fields[i++]); + final int size = Integer.parseInt(fields[i++]); + indexInfos.ensureCapacity(size); + for (int j = 0; j < size; ++j) { + indexInfos.add(new IndexInfo(fields, i)); + i += IndexInfo.NUM_CSV_FIELDS; + } + dictInfo = fields[i++].replace("\\\\n", "\n"); + } + @Override + public String toString() { + return uncompressedFilename; + } }