if (hasPrefValues) {
if (loadFreshData) {
FastByIDMap<Collection<Preference>> data = new FastByIDMap<Collection<Preference>>();
FileLineIterator iterator = new FileLineIterator(dataFile, false);
processFile(iterator, data, timestamps, false);
for (File updateFile : findUpdateFiles()) {
processFile(new FileLineIterator(updateFile, false), data, timestamps, false);
}
return new GenericDataModel(GenericDataModel.toDataMap(data, true), timestamps);
} else {
FastByIDMap<PreferenceArray> rawData = ((GenericDataModel) delegate).getRawUserData();
for (File updateFile : findUpdateFiles()) {
processFile(new FileLineIterator(updateFile, false), rawData, timestamps, true);
}
return new GenericDataModel(rawData, timestamps);
}
} else {
if (loadFreshData) {
FastByIDMap<FastIDSet> data = new FastByIDMap<FastIDSet>();
FileLineIterator iterator = new FileLineIterator(dataFile, false);
processFileWithoutID(iterator, data, timestamps);
for (File updateFile : findUpdateFiles()) {
processFileWithoutID(new FileLineIterator(updateFile, false), data, timestamps);
}
return new GenericBooleanPrefDataModel(data, timestamps);
} else {
FastByIDMap<FastIDSet> rawData = ((GenericBooleanPrefDataModel) delegate).getRawUserData();
for (File updateFile : findUpdateFiles()) {
processFileWithoutID(new FileLineIterator(updateFile, false), rawData, timestamps);
}
return new GenericBooleanPrefDataModel(rawData, timestamps);
}