X-Git-Url: http://gitweb.fperrin.net/?p=Dictionary.git;a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2FDictionaryInfo.java;h=4a135202322014530939e5d3e94822b4334eb931;hp=5d90589dbf85a797109692eb2ad4f26285848193;hb=e79165503392ed6a7cb7a8eadc15eaae0cda9443;hpb=d2ae729dd7050e6fd6645fe7d3df818407f50f31 diff --git a/src/com/hughes/android/dictionary/DictionaryInfo.java b/src/com/hughes/android/dictionary/DictionaryInfo.java index 5d90589..4a13520 100644 --- a/src/com/hughes/android/dictionary/DictionaryInfo.java +++ b/src/com/hughes/android/dictionary/DictionaryInfo.java @@ -16,88 +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 implements Serializable { - private static final long serialVersionUID = 6524751236198309438L; - - public static final int NUM_CSV_FIELDS = 3; - - public final String shortName; // Often LangISO. - public final int allTokenCount; - public final int mainTokenCount; - - public IndexInfo(String shortName, int allTokenCount, int mainTokenCount) { - this.shortName = shortName; - this.allTokenCount = allTokenCount; - this.mainTokenCount = mainTokenCount; - } - - public StringBuilder append(StringBuilder result) { - result.append(shortName); - result.append("\t").append(allTokenCount); - result.append("\t").append(mainTokenCount); - return result; + + 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++]); + } } - 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; // 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. } - } - - // 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 List indexInfos = new ArrayList(); - public String dictInfo; - - 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")); + + public boolean isValid() { + return !indexInfos.isEmpty(); } - 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++]); - uncompressedBytes = Long.parseLong(fields[i++]); - zipBytes = 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.NUM_CSV_FIELDS; + + 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; } - dictInfo = fields[i++].replaceAll("\\\\n", "\n"); - } - @Override - public String toString() { - return uncompressedFilename; - } + 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; + } }