@SuppressWarnings("squid:S2201") // ignore return values
  private LoadingCache<Object, Optional<Map<String, Object>>> getEntityCache(
      Repository<Entity> repository) {
    String id = repository.getEntityType().getId();
    if (!caches.containsKey(id)) {
      caches.putIfAbsent(id, createEntityCache(repository));
    }
    return caches.get(id);
  }
@ SuppressWarnings ( "squid:S2201" ) private LoadingCache < Object , Optional < Map < String , Object > > > getEntityCache ( Repository < Entity > repository ) { String id = repository . getEntityType ( ) . getId ( ) ; if ( ! caches . containsKey ( id ) ) { caches . putIfAbsent ( id , createEntityCache ( repository ) ) ; } return caches . get ( id ) ; }
Gets the existing entity cache for a {@link Repository} or creates a new one if no cache exists
yet.

@param repository the Repository used to create a new cache if none found, otherwise only the
id of the repository is used to look up the existing cache
@return the LoadingCache for the repository