package com.liato.bankdroid.banking;
import com.liato.bankdroid.provider.IBankTypes;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
import timber.log.Timber;
public class LegacyBankHelper {
private static Map<String, Integer> legacyProviderReferences;
private static Map<Integer, String> providerReferences;
public static String getReferenceFromLegacyId(int legacyId) {
if (providerReferences == null) {
generateLegacyProviderReferences();
}
return providerReferences.get(legacyId);
}
// TODO Used during refactoring. Remove before 2.0
public static int getLegacyIdFromReference(String reference) {
if (legacyProviderReferences == null) {
generateLegacyProviderReferences();
}
return legacyProviderReferences.get(reference);
}
private static void generateLegacyProviderReferences() {
Map<Integer, String> references = new HashMap<>();
Map<String, Integer> legacyIds = new HashMap<>();
Field[] fields = IBankTypes.class.getFields();
for (Field field : fields) {
try {
String reference = field.getName().toLowerCase().replaceAll("_", "-");
Integer legacyId = field.getInt(new IBankTypes() {
});
references.put(legacyId, reference);
legacyIds.put(reference, legacyId);
} catch (IllegalAccessException e) {
Timber.e(e, "Provider could not be mapped");
}
}
legacyProviderReferences = legacyIds;
providerReferences = references;
}
}