// 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/ParaGarantiRate.java
// public class ParaGarantiRate extends AvgRate {
// 
//     public String symbol;
//     public String last;
// 
//     @Override
//     public void toRateType() {
//         if (TextUtils.isEmpty(symbol)) rateType = UNKNOWN;
//         int rateType = UNKNOWN;
//         switch (symbol) {
//             case "KUSD":
//                 rateType = USD;
//                 break;
//             case "KEUR":
//                 rateType = EUR;
//                 break;
//             case "EUR":
//                 rateType = EUR_USD;
//                 break;
//         }
//         this.rateType = rateType;
//     }
// 
//     @Override
//     public void setRealValues() {
//         if (rateType == UNKNOWN) return;
//         last = last.replace(',', '.');
//         String val = last.replace("'", "").replace("$", "").trim();
//         Float real_val = RateUtils.toFloat(val);
//         val_real_avg = real_val != null ? real_val : 0.0f;
//     }
// 
//     @Override
//     @NonNull
//     public String toString() {
//         return "SYMBOL : " + symbol + " Value : " + last;
//     }
// 
// }
// 
// Path: app/src/main/java/dynoapps/exchange_rates/util/L.java
// public class L {
// 
//     private static final String TAG = "ExchangeRates";
// 
//     private static final String LOG_PREFIX = "";
//     private static final int LOG_PREFIX_LENGTH = LOG_PREFIX.length();
//     private static final int MAX_LOG_TAG_LENGTH = 23;
//     private static final int MAX_CHAR_LENGTH = 320;
// 
//     public static String makeLogTag(String str) {
//         if (str.length() > MAX_LOG_TAG_LENGTH - LOG_PREFIX_LENGTH) {
//             return LOG_PREFIX + str.substring(0, MAX_LOG_TAG_LENGTH - LOG_PREFIX_LENGTH - 1);
//         }
// 
//         return LOG_PREFIX + str;
//     }
// 
//     public static void e(String tag, String msg) {
//         Log.e(makeLogTag(tag), msg);
//     }
// 
//     public static void e(String tag, Throwable th) {
//         Log.e(tag, "", th);
//     }
// 
//     public static void i(String tag, String msg) {
//         Log.i(makeLogTag(tag), msg);
//     }
// 
//     public static void ex(Exception ex) {
//         Log.e(TAG, "", ex);
//     }
// 
//     public static void ex(Exception ex, String message) {
//         Log.e(TAG, message, ex);
//     }
// }


import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import androidx.annotation.NonNull;
import dynoapps.exchange_rates.model.rates.BaseRate;
import dynoapps.exchange_rates.model.rates.ParaGarantiRate;
import dynoapps.exchange_rates.util.L;
import okhttp3.ResponseBody;
import retrofit2.Converter;
import retrofit2.Retrofit;
package dynoapps.exchange_rates.converters;





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

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

    private static final ParagarantiConverter INSTANCE = new ParagarantiConverter();

    private ParagarantiConverter() {
    }

    /**
     * Sample response body
     * </p>
     **/
    @Override
    public List<BaseRate> convert(@NonNull ResponseBody value) throws IOException {

        ArrayList<BaseRate> rates = new ArrayList<>();


        String responseBody = value.string();
        InputStream inputStream = new ByteArrayInputStream(responseBody.getBytes(StandardCharsets.UTF_8));
        try {
            Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputStream);
            NodeList nodeList = d.getChildNodes().item(1).getChildNodes();
            for (int i = 0; i < nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
                if (node instanceof Element) {
                    Element element = (Element) node;
                    if (element.getTagName().equals("STOCK")) {
                        NodeList stockChildNodes = node.getChildNodes();
// 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/ParaGarantiRate.java
// public class ParaGarantiRate extends AvgRate {
// 
//     public String symbol;
//     public String last;
// 
//     @Override
//     public void toRateType() {
//         if (TextUtils.isEmpty(symbol)) rateType = UNKNOWN;
//         int rateType = UNKNOWN;
//         switch (symbol) {
//             case "KUSD":
//                 rateType = USD;
//                 break;
//             case "KEUR":
//                 rateType = EUR;
//                 break;
//             case "EUR":
//                 rateType = EUR_USD;
//                 break;
//         }
//         this.rateType = rateType;
//     }
// 
//     @Override
//     public void setRealValues() {
//         if (rateType == UNKNOWN) return;
//         last = last.replace(',', '.');
//         String val = last.replace("'", "").replace("$", "").trim();
//         Float real_val = RateUtils.toFloat(val);
//         val_real_avg = real_val != null ? real_val : 0.0f;
//     }
// 
//     @Override
//     @NonNull
//     public String toString() {
//         return "SYMBOL : " + symbol + " Value : " + last;
//     }
// 
// }
// 
// Path: app/src/main/java/dynoapps/exchange_rates/util/L.java
// public class L {
// 
//     private static final String TAG = "ExchangeRates";
// 
//     private static final String LOG_PREFIX = "";
//     private static final int LOG_PREFIX_LENGTH = LOG_PREFIX.length();
//     private static final int MAX_LOG_TAG_LENGTH = 23;
//     private static final int MAX_CHAR_LENGTH = 320;
// 
//     public static String makeLogTag(String str) {
//         if (str.length() > MAX_LOG_TAG_LENGTH - LOG_PREFIX_LENGTH) {
//             return LOG_PREFIX + str.substring(0, MAX_LOG_TAG_LENGTH - LOG_PREFIX_LENGTH - 1);
//         }
// 
//         return LOG_PREFIX + str;
//     }
// 
//     public static void e(String tag, String msg) {
//         Log.e(makeLogTag(tag), msg);
//     }
// 
//     public static void e(String tag, Throwable th) {
//         Log.e(tag, "", th);
//     }
// 
//     public static void i(String tag, String msg) {
//         Log.i(makeLogTag(tag), msg);
//     }
// 
//     public static void ex(Exception ex) {
//         Log.e(TAG, "", ex);
//     }
// 
//     public static void ex(Exception ex, String message) {
//         Log.e(TAG, message, ex);
//     }
// }


// Path: app/src/main/java/dynoapps/exchange_rates/converters/ParagarantiConverter.java
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import androidx.annotation.NonNull;
import dynoapps.exchange_rates.model.rates.BaseRate;
import dynoapps.exchange_rates.model.rates.ParaGarantiRate;
import dynoapps.exchange_rates.util.L;
import okhttp3.ResponseBody;
import retrofit2.Converter;
import retrofit2.Retrofit;

package dynoapps.exchange_rates.converters;





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

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

    private static final ParagarantiConverter INSTANCE = new ParagarantiConverter();

    private ParagarantiConverter() {
    }

    /**
     * Sample response body
     * </p>
     **/
    @Override
    public List<BaseRate> convert(@NonNull ResponseBody value) throws IOException {

        ArrayList<BaseRate> rates = new ArrayList<>();


        String responseBody = value.string();
        InputStream inputStream = new ByteArrayInputStream(responseBody.getBytes(StandardCharsets.UTF_8));
        try {
            Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputStream);
            NodeList nodeList = d.getChildNodes().item(1).getChildNodes();
            for (int i = 0; i < nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
                if (node instanceof Element) {
                    Element element = (Element) node;
                    if (element.getTagName().equals("STOCK")) {
                        NodeList stockChildNodes = node.getChildNodes();
                        ParaGarantiRate rate = new ParaGarantiRate();