Source:
<code>private Map<Locator, MetricData> getEnumMetricDataForRangeForLocatorList(final List<Locator> locators, final Range range, final String columnFamily) { if (range.getStart() > range.getStop()) { throw new IllegalArgumentException(String.format("invalid range: ", range.toString())); } Future<Table<Locator, Long, String>> enumHashValuesFuture = taskExecutor.submit(new Callable() { @Override public Table<Locator, Long, String> call() throws Exception { return enumReader.getEnumHashValuesForLocators(locators); } }); <START> Future<Table<Locator, Long, Object>> enumHashRollupFuture = taskExecutor.submit(new Callable() { <END> @Override public Table<Locator, Long, Object> call() throws Exception { return enumReader.getEnumRollupsForLocators(locators, columnFamily, range); } }); Map<Locator, MetricData> resultMap = new HashMap<Locator, MetricData>(); try { Table<Locator, Long, String> enumHashValues = enumHashValuesFuture.get(); Table<Locator, Long, Object> enumHashRollup = enumHashRollupFuture.get(); for (Locator locator : locators) { populateEnumValueToCountMap(enumHashRollup.row(locator), enumHashValues.row(locator)); Points points = convertToPoints(enumHashRollup.row(locator)); MetricData metricData = new MetricData(points, getUnitString(locator), MetricData.Type.ENUM); resultMap.put(locator, metricData); } } catch (InterruptedException e) { LOG.error("Interrupted while reading Enum metrics for locators " + locators, e); } catch (ExecutionException e) { LOG.error("Execution error while reading Enum metrics for locators " + locators, e); } return resultMap; }</code><technical_language>I this needs changed BluefloodEnumRollup Object. elaborate</technical_language>

Target:
private Map<Locator, MetricData> getEnumMetricDataForRangeForLocatorList(final List<Locator> locators, final Range range, final String columnFamily) { if (range.getStart() > range.getStop()) { throw new IllegalArgumentException(String.format("invalid range: ", range.toString())); } Future<Table<Locator, Long, String>> enumHashValuesFuture = taskExecutor.submit(new Callable() { @Override public Table<Locator, Long, String> call() throws Exception { return enumReader.getEnumHashValuesForLocators(locators); } }); Future<Table<Locator, Long, BluefloodEnumRollup>> enumHashRollupFuture = taskExecutor.submit(new Callable() { @Override public Table<Locator, Long, BluefloodEnumRollup> call() throws Exception { return enumReader.getEnumRollupsForLocators(locators, columnFamily, range); } }); Map<Locator, MetricData> resultMap = new HashMap<Locator, MetricData>(); try { Table<Locator, Long, String> enumHashValues = enumHashValuesFuture.get(); Table<Locator, Long, BluefloodEnumRollup> enumHashRollup = enumHashRollupFuture.get(); for (Locator locator : locators) { populateEnumValueToCountMap(enumHashRollup.row(locator), enumHashValues.row(locator)); Points points = convertToPoints(enumHashRollup.row(locator)); MetricData metricData = new MetricData(points, getUnitString(locator), MetricData.Type.ENUM); resultMap.put(locator, metricData); } } catch (InterruptedException e) { LOG.error("Interrupted while reading Enum metrics for locators " + locators, e); } catch (ExecutionException e) { LOG.error("Execution error while reading Enum metrics for locators " + locators, e); } return resultMap; }