package org.voidsink.kussslib.impl; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.voidsink.kussslib.Term; import org.voidsink.kussslib.Term.TermType; public class Parser { public static final SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy"); public static final SimpleDateFormat dateFormatWithTime = new SimpleDateFormat("dd.MM.yyyyHH:mm"); public static final String FAILED_PARSING_DATE = "failed while parsing %s-date"; public static final String FAILED_PARSING_START_DATE = String.format(FAILED_PARSING_DATE,"start"); public static final String FAILED_PARSING_END_DATE = String.format(FAILED_PARSING_DATE,"end"); public static final String FAILED_PARSING_DATE_WITH_TIME = "failed while parsing %s-date with time"; public static final String FAILED_PARSING_START_DATE_WITH_TIME = String.format(FAILED_PARSING_DATE_WITH_TIME,"start"); public static final String FAILED_PARSING_END_DATE_WITH_TIME = String.format(FAILED_PARSING_DATE_WITH_TIME,"end"); public static final String FAILED_PARSING_NUMERIC_VALUE = "failed while parsing %s numeric value"; public static final String PATTERN_LVA_NR_WITH_DOT = "\\d{3}\\.\\w{3}"; public static final String PATTERN_LVA_NR = "\\d{3}\\w{3}"; public static final String PATTERN_TERM = "\\d{4}[swSW]"; public static final String PATTERN_LVA_NR_COMMA_TERM = "\\(" + PATTERN_LVA_NR + "," + PATTERN_TERM + "\\)"; public static final String PATTERN_LVA_NR_SLASH_TERM = "\\(" + PATTERN_LVA_NR + "\\/" + PATTERN_TERM + "\\)"; public static Date parseDate(String text, String errorMsg) throws ParseException { if (!TextUtils.isEmpty(text)) { try { return dateFormat.parse(text); } catch (ParseException e) { if(errorMsg.trim().isEmpty()) errorMsg = e.getMessage(); else errorMsg = errorMsg+": "+e.getMessage(); throw new ParseException(errorMsg,e.getErrorOffset()); } } return null; } public static Date parseDateWithTime(String text, String errorMsg) throws ParseException { if (!TextUtils.isEmpty(text)) { try { return dateFormatWithTime.parse(text); } catch (ParseException e) { if(errorMsg.trim().isEmpty()) errorMsg = e.getMessage(); else errorMsg = errorMsg+": "+e.getMessage(); throw new ParseException(errorMsg,e.getErrorOffset()); } } return null; } }