class HighConcurrencyTemplateCache implements TemplateCache {

  @Override
  public Template get(final TemplateSource source, final Parser parser) throws IOException {
    notNull(source, "The source is required.");
    notNull(parser, "The parser is required.");

    /**
     * Don't keep duplicated entries, remove old templates if a change is detected.
     */
    return cacheGet(source, parser);
  }

  protected  HighConcurrencyTemplateCache(
      final ConcurrentMap<TemplateSource, Future<Pair<TemplateSource, Template>>> cache);
  public  HighConcurrencyTemplateCache();

}