X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2FDictionaryInfo.java;h=0df04c43256d74a14b1c325a593598d6dcc7d75b;hb=83d9dc7cd871082a82c2dd0dbb7a0ceabd7c83a0;hp=26c818a70cd4c4c2412b7a906ed041cf49bec016;hpb=474941471fa0cf5f795afaec71e8a3f1ff60ec53;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/DictionaryInfo.java b/src/com/hughes/android/dictionary/DictionaryInfo.java index 26c818a..0df04c4 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(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 final List indexInfos = new ArrayList(); - public String dictInfo; - - 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); - result.append("\t").append(downloadUrl); - result.append("\t").append(creationMillis); - result.append("\t").append(uncompressedSize); - result.append("\t").append(indexInfos.size()); - for (final IndexInfo indexInfo : indexInfos) { - indexInfo.append(result.append("\t")); + // 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. } - result.append("\t").append(dictInfo.replaceAll("\n", "\\\\n")); - 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++]); - 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 != null && !indexInfos.isEmpty(); } - dictInfo = fields[i++].replaceAll("\\n", "\n"); - } - 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; + } }