public Any mapBuilder(final MapBuilder mapBuilder) { if (mapBuilder == null) { throw new IllegalArgumentException("'mapBuilder' must not be null"); } return new Any(metricId, new CacheBuilder() { @Override public <T> Cache<T> build(Loader<T> loader) { final ConcurrentMap<T, MetricId> map = mapBuilder.build(); if (map == null) { throw new IllegalStateException("'mapBuilder' must not return null"); } return new ConcurrentMapCache<T>(map, loader); } }); }
public Typed<T> mapBuilder(MapBuilder mapBuilder, Loader<T> loader) { return loader(loader).any(any.mapBuilder(mapBuilder)); }
public <T> Typed<T> mapBuilder(MapBuilder mapBuilder, Loader<T> loader) { return mapBuilder(mapBuilder).loader(loader); }
public Typed<T> mapBuilder(MapBuilder mapBuilder) { return any(any.mapBuilder(mapBuilder)); }
public Typed<T> cacheBuilder(CacheBuilder cacheBuilder) { return any(any.cacheBuilder(cacheBuilder)); }
public static Any builder() { return new Any(); }
public Any cacheBuilder(CacheBuilder cacheBuilder) { if (cacheBuilder == null) { throw new IllegalArgumentException("'cacheBuilder' must not be null"); } return new Any(metricId, cacheBuilder); }
/** * Configure a base metric id. * * @see Any#metricId(MetricId) */ public Typed<T> metricId(MetricId base) { return any(any.metricId(base)); }
/** * Set the given base metric id for the cache. */ public Any metricId(MetricId metricId) { if (metricId == null) { throw new IllegalArgumentException("'metricId' must not be null"); } return new Any(metricId, cacheBuilder); }
public static MetricIdCache.Any setup(final Setup setup) { return MetricIdCache.builder().cacheBuilder(new MetricIdCache.CacheBuilder() { @Override public <T> MetricIdCache.Cache<T> build(final MetricIdCache.Loader<T> loader) { final Cache<T, MetricId> cache = setup.setup(CacheBuilder.newBuilder()).build(); return new GuavaCache<T>(loader, cache); } }); }