// Path: app/src/main/java/dynoapps/exchange_rates/model/rates/BaseRate.java
// public abstract class BaseRate implements IConvertable, IRate {
// 
//     public String type;
// 
//     @RateDef
//     protected int rateType;
// 
//     BaseRate() {
//     }
// 
//     @Override
//     public int getRateType() {
//         return rateType;
//     }
// 
//     public String getFormatted(float val) {
//         return RateUtils.valueToUI(val, rateType);
//     }
// }
// 
// Path: app/src/main/java/dynoapps/exchange_rates/model/rates/BigparaRate.java
// public class BigparaRate extends BuySellRate {
// 
//     @Override
//     public void toRateType() {
//         int rateType = UNKNOWN;
//         String plain_type = type;
//         plain_type = plain_type.toLowerCase();
//         if (plain_type.contains("dolar")) {
//             rateType = USD;
//         } else if (plain_type.contains("euro")) {
//             rateType = EUR;
//         } else if (plain_type.contains("altın")) {
//             rateType = ONS_TRY;
//         } else if (plain_type.contains("parite")) {
//             rateType = EUR_USD;
//         }
//         this.rateType = rateType;
//     }
// }
// 
// Path: app/src/main/java/dynoapps/exchange_rates/model/rates/BuySellRate.java
// public abstract class BuySellRate extends BaseRate {
//     public Float valueSellReal, valueBuyReal;
//     public String valueSell, valueBuy;
// 
// 
//     @Override
//     public void toRateType() {
//         int rateType = UNKNOWN;
//         String plain_type = type.replace("\n", "");
//         if (plain_type.equals("USD")) {
//             rateType = USD;
//         } else if (plain_type.equals("EUR")) {
//             rateType = EUR;
//         } else if (plain_type.contains("altın")) {
//             rateType = ONS_TRY;
//         } else if (plain_type.contains("parite")) {
//             rateType = EUR_USD;
//         }
//         this.rateType = rateType;
//     }
// 
//     @Override
//     public void setRealValues() {
//         String val = valueSell.replace(" TL", "").replace(",", ".").trim();
//         valueSellReal = Float.valueOf(val);
// 
//         val = valueBuy.replace(" TL", "").replace(",", ".").trim();
//         valueBuyReal = Float.valueOf(val);
//     }
// 
// 
//     @Override
//     public float getValue(int valueType) {
//         if (valueType == ValueType.BUY) {
//             return valueBuyReal;
//         } else if (valueType == ValueType.SELL) {
//             return valueSellReal;
//         }
//         return 0.0f;
//     }
// 
//     @Override
//     @NonNull
//     public String toString() {
//         return type.split("_")[0] + " -> " + valueSellReal + " : " + valueBuyReal;
//     }
// }


import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import dynoapps.exchange_rates.model.rates.BaseRate;
import dynoapps.exchange_rates.model.rates.BigparaRate;
import dynoapps.exchange_rates.model.rates.BuySellRate;
import okhttp3.ResponseBody;
import retrofit2.Converter;
import retrofit2.Retrofit;
package dynoapps.exchange_rates.converters;





/**
 * Created by erdemmac on 24/11/2016.
 */

public class BigparaConverter implements Converter<ResponseBody, List<BaseRate>> {

    private static final BigparaConverter INSTANCE = new BigparaConverter();
    private static final String HOST = "http://www.bigpara.com";

    private BigparaConverter() {
    }

    @Override
    public List<BaseRate> convert(@NonNull ResponseBody value) throws IOException {

        ArrayList<BaseRate> rates = new ArrayList<>();
        String responseBody = value.string();

        ArrayList<Element> elements = Jsoup.parse(responseBody, HOST).select("#content").select(".kurdetail").select(".kurbox");

        String val_buy = elements.get(1).select(".value").text();
        String val_sell = elements.get(2).select(".value").text();

// Path: app/src/main/java/dynoapps/exchange_rates/model/rates/BaseRate.java
// public abstract class BaseRate implements IConvertable, IRate {
// 
//     public String type;
// 
//     @RateDef
//     protected int rateType;
// 
//     BaseRate() {
//     }
// 
//     @Override
//     public int getRateType() {
//         return rateType;
//     }
// 
//     public String getFormatted(float val) {
//         return RateUtils.valueToUI(val, rateType);
//     }
// }
// 
// Path: app/src/main/java/dynoapps/exchange_rates/model/rates/BigparaRate.java
// public class BigparaRate extends BuySellRate {
// 
//     @Override
//     public void toRateType() {
//         int rateType = UNKNOWN;
//         String plain_type = type;
//         plain_type = plain_type.toLowerCase();
//         if (plain_type.contains("dolar")) {
//             rateType = USD;
//         } else if (plain_type.contains("euro")) {
//             rateType = EUR;
//         } else if (plain_type.contains("altın")) {
//             rateType = ONS_TRY;
//         } else if (plain_type.contains("parite")) {
//             rateType = EUR_USD;
//         }
//         this.rateType = rateType;
//     }
// }
// 
// Path: app/src/main/java/dynoapps/exchange_rates/model/rates/BuySellRate.java
// public abstract class BuySellRate extends BaseRate {
//     public Float valueSellReal, valueBuyReal;
//     public String valueSell, valueBuy;
// 
// 
//     @Override
//     public void toRateType() {
//         int rateType = UNKNOWN;
//         String plain_type = type.replace("\n", "");
//         if (plain_type.equals("USD")) {
//             rateType = USD;
//         } else if (plain_type.equals("EUR")) {
//             rateType = EUR;
//         } else if (plain_type.contains("altın")) {
//             rateType = ONS_TRY;
//         } else if (plain_type.contains("parite")) {
//             rateType = EUR_USD;
//         }
//         this.rateType = rateType;
//     }
// 
//     @Override
//     public void setRealValues() {
//         String val = valueSell.replace(" TL", "").replace(",", ".").trim();
//         valueSellReal = Float.valueOf(val);
// 
//         val = valueBuy.replace(" TL", "").replace(",", ".").trim();
//         valueBuyReal = Float.valueOf(val);
//     }
// 
// 
//     @Override
//     public float getValue(int valueType) {
//         if (valueType == ValueType.BUY) {
//             return valueBuyReal;
//         } else if (valueType == ValueType.SELL) {
//             return valueSellReal;
//         }
//         return 0.0f;
//     }
// 
//     @Override
//     @NonNull
//     public String toString() {
//         return type.split("_")[0] + " -> " + valueSellReal + " : " + valueBuyReal;
//     }
// }


// Path: app/src/main/java/dynoapps/exchange_rates/converters/BigparaConverter.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import dynoapps.exchange_rates.model.rates.BaseRate;
import dynoapps.exchange_rates.model.rates.BigparaRate;
import dynoapps.exchange_rates.model.rates.BuySellRate;
import okhttp3.ResponseBody;
import retrofit2.Converter;
import retrofit2.Retrofit;

package dynoapps.exchange_rates.converters;





/**
 * Created by erdemmac on 24/11/2016.
 */

public class BigparaConverter implements Converter<ResponseBody, List<BaseRate>> {

    private static final BigparaConverter INSTANCE = new BigparaConverter();
    private static final String HOST = "http://www.bigpara.com";

    private BigparaConverter() {
    }

    @Override
    public List<BaseRate> convert(@NonNull ResponseBody value) throws IOException {

        ArrayList<BaseRate> rates = new ArrayList<>();
        String responseBody = value.string();

        ArrayList<Element> elements = Jsoup.parse(responseBody, HOST).select("#content").select(".kurdetail").select(".kurbox");

        String val_buy = elements.get(1).select(".value").text();
        String val_sell = elements.get(2).select(".value").text();

        BuySellRate buySellRate = new BigparaRate();