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