package apps.makarov.com.whereismycurrency.mappers.json; import org.json.JSONException; import org.json.JSONObject; import java.util.Iterator; import apps.makarov.com.whereismycurrency.mappers.Mapper; import apps.makarov.com.whereismycurrency.models.Bank; import apps.makarov.com.whereismycurrency.models.Rate; /** * Created by makarov on 28/06/15. */ public class BankJsonMapper implements Mapper<Bank, JSONObject> { @Override public Bank modelToData(JSONObject mJsonObject) { Bank bank = getBaseBankInterpreter(mJsonObject); try { Iterator<String> iter = mJsonObject.keys(); while(iter.hasNext()){ String compareCurrency = iter.next(); if(!Rate.getCodesList().contains(compareCurrency)) continue; RateJsonMapper parseRate = new RateJsonMapper(Rate.RUB_CODE, compareCurrency, bank.getName()); bank.getRates().addAll(parseRate.modelToData(mJsonObject.getJSONObject(compareCurrency))); } } catch (JSONException e) { e.printStackTrace(); } return bank; } @Override public JSONObject dataToModel(Bank obj) { return null; } private Bank getBaseBankInterpreter(JSONObject mJsonObject) { Bank bank = new Bank(); try { String nameBank = mJsonObject.getString("Name"); String changeTime = mJsonObject.getString("ChangeTime"); bank.setName(nameBank); } catch (JSONException e) { e.printStackTrace(); } return bank; } }