@Override public Template get(final TemplateSource source, final Parser parser) throws IOException { requireNonNull(source, "The source is required."); requireNonNull(parser, "The parser is required."); try { return cache.get(key(source), () -> parser.parse(source)); } catch (ExecutionException ex) { throw launderThrowable(source, ex.getCause()); } }