StarTreeRecordStoreDefaultImpl implements StarTreeRecordStore { @Override public void update(StarTreeRecord record) { Map<DimensionKey, Integer> logicalOffsets = dimensionStore.findMatchingKeys(record.getDimensionKey()); for (Integer id : logicalOffsets.values()) { metricStore.update(id, record.getMetricTimeSeries()); } } StarTreeRecordStoreDefaultImpl(StarTreeConfig config,
                                        DimensionStore dimensionStore,
                                        MetricStore metricStore); @Override void update(StarTreeRecord record); @Override Iterator<StarTreeRecord> iterator(); @Override void clear(); @Override void open(); @Override void close(); @Override int getRecordCount(); @Override int getRecordCountEstimate(); @Override int getCardinality(String dimensionName); @Override String getMaxCardinalityDimension(); @Override String getMaxCardinalityDimension(Collection<String> blacklist); @Override Set<String> getDimensionValues(String dimensionName); @Override Number[] getMetricSums(StarTreeQuery query); @Override Long getMinTime(); @Override Long getMaxTime(); @Override Map<TimeRange, Integer> getTimeRangeCount(); @Override MetricTimeSeries getTimeSeries(StarTreeQuery query); @Override Map<String, Map<String, Integer>> getForwardIndex();  }
@Test(expectedExceptions = UnsupportedOperationException.class) public void testUpdate() { MetricTimeSeries ts = new MetricTimeSeries(metricSchema); ts.set(0, "M", 1); StarTreeRecord record = new StarTreeRecordImpl.Builder() .setDimensionKey(getDimensionKey("A0", "B0", "C0")) .setMetricTimeSeries(ts) .build(config); recordStore.update(record); }