private static <T, R> R parseExpression(List<T> dialects, ParseFunction<T, R> parseFunction) throws ParseException { ParseException lastFailure = null; for (T dialect : dialects) { try { return parseFunction.apply(dialect); } catch (ParseException e) { if (log.isTraceEnabled()) { log.trace("Parse Failure: {}", e.getMessage()); } if (lastFailure != null) { lastFailure = new ParseException(e.getMessage() + "\n" + lastFailure.getMessage()); } else { lastFailure = e; } } } if (lastFailure == null) { lastFailure = new ParseException("No dialects"); } throw lastFailure; }
private static <T, R> R parseExpression(List<T> dialects, ParseFunction<T, R> parseFunction) throws ParseException { ParseException lastFailure = null; for (T dialect : dialects) { try { return parseFunction.apply(dialect); } catch (ParseException e) { if (log.isTraceEnabled()) { log.trace("Parse Failure: {}", e.getMessage()); } if (lastFailure != null) { lastFailure = new ParseException(e.getMessage() + "\n" + lastFailure.getMessage()); } else { lastFailure = e; } } } if (lastFailure == null) { lastFailure = new ParseException("No dialects"); } throw lastFailure; }