All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cl.transbank.pos.utils.ParameterParser Maven / Gradle / Ivy

package cl.transbank.pos.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

public class ParameterParser {

    private ParameterParser() {}

    public static String parseStringParameter(String response, Map parameterMap, String parameterKey) {
        try {
            return response.split("\\|")[parameterMap.get(parameterKey)].trim();
        }
        catch (ArrayIndexOutOfBoundsException ex) { return ""; }
    }

    public static int parseIntParameter(String response, Map parameterMap, String parameterKey) {
        try {
            return Integer.parseInt(response.split("\\|")[parameterMap.get(parameterKey)].trim());
        }
        catch (ArrayIndexOutOfBoundsException | NumberFormatException ex) { return -1; }
    }

    public static long parseLongParameter(String response, Map parameterMap, String parameterKey) {
        try {
            return Long.parseLong(response.split("\\|")[parameterMap.get(parameterKey)].trim());
        }
        catch (ArrayIndexOutOfBoundsException | NumberFormatException ex) { return -1; }
    }

    public static Date parseAccountingDate(String response, Map parameterMap) {
        try {
            String date = response.split("\\|")[parameterMap.get("AccountingDate")].trim();
            return new SimpleDateFormat("ddMMyyyy").parse(date);
        }
        catch (ArrayIndexOutOfBoundsException | ParseException ex) { return null; }
    }

    public static Date parseRealDate(String response, Map parameterMap) {
        try {
            String date = response.split("\\|")[parameterMap.get("RealDate")].trim();
            String hour = response.split("\\|")[parameterMap.get("RealTime")].trim();
            return new SimpleDateFormat("ddMMyyyyHHmmss").parse(date+hour);
        }
        catch (ArrayIndexOutOfBoundsException | ParseException ex) { return null; }
    }

    public static List parsePrintingField(String response, Map parameterMap) {
        List printingField = new ArrayList<>();

        try {
            String[] arrayResponse = response.split("\\|");
            if (arrayResponse.length < 5) {
                printingField.add("");
                return printingField;
            }

            String fullPrintingField = arrayResponse[parameterMap.get("PrintingField")].trim();

            if (fullPrintingField.length() % 40 != 0)
            {
                printingField.add(fullPrintingField);
                return printingField;
            }

            for (int i = 0; i < fullPrintingField.length(); i += 40)
                printingField.add(fullPrintingField.substring(i, 40));

            return printingField;

        } catch (IndexOutOfBoundsException e) { return printingField; }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy