package com.linkedin.thirdeye.client.cache; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.cache.CacheLoader; import com.linkedin.thirdeye.datalayer.bao.MetricConfigManager; import com.linkedin.thirdeye.datalayer.dto.MetricConfigDTO; public class MetricConfigCacheLoader extends CacheLoader<MetricDataset, MetricConfigDTO> { private static final Logger LOGGER = LoggerFactory.getLogger(MetricConfigCacheLoader.class); private MetricConfigManager metricConfigDAO; public MetricConfigCacheLoader(MetricConfigManager metricConfigDAO) { this.metricConfigDAO = metricConfigDAO; } @Override public MetricConfigDTO load(MetricDataset metricDataset) throws Exception { LOGGER.info("Loading MetricConfigCache for metric {} of {}", metricDataset.getMetricName(), metricDataset.getDataset()); MetricConfigDTO metricConfig = metricConfigDAO.findByMetricAndDataset(metricDataset.getMetricName(), metricDataset.getDataset()); return metricConfig; } }