MetricDesc metricDesc = new MetricDesc(metricDescs.size(), metric); metricDescs.put(metricDesc.getName(), metricDesc); columnCapabilities.put(metricDesc.getName(), metricDesc.getCapabilities());
@Nullable public String getMetricType(String metric) { final MetricDesc metricDesc = metricDescs.get(metric); return metricDesc != null ? metricDesc.getType() : null; }
MetricDesc metricDesc = new MetricDesc(metricDescs.size(), metric); metricDescs.put(metricDesc.getName(), metricDesc); columnCapabilities.put(metricDesc.getName(), metricDesc.getCapabilities());
public ColumnValueSelector<?> makeMetricColumnValueSelector(String metric, IncrementalIndexRowHolder currEntry) { MetricDesc metricDesc = metricDescs.get(metric); if (metricDesc == null) { return NilColumnValueSelector.instance(); } int metricIndex = metricDesc.getIndex(); switch (metricDesc.getCapabilities().getType()) { case COMPLEX: return new ObjectMetricColumnSelector(metricDesc, currEntry, metricIndex); case LONG: return new LongMetricColumnSelector(currEntry, metricIndex); case FLOAT: return new FloatMetricColumnSelector(currEntry, metricIndex); case DOUBLE: return new DoubleMetricColumnSelector(currEntry, metricIndex); case STRING: throw new IllegalStateException("String is not a metric column type"); default: throw new ISE("Unknown metric value type: %s", metricDesc.getCapabilities().getType()); } }
@Nullable public String getMetricType(String metric) { final MetricDesc metricDesc = metricDescs.get(metric); return metricDesc != null ? metricDesc.getType() : null; }
public ColumnValueSelector<?> makeMetricColumnValueSelector(String metric, IncrementalIndexRowHolder currEntry) { MetricDesc metricDesc = metricDescs.get(metric); if (metricDesc == null) { return NilColumnValueSelector.instance(); } int metricIndex = metricDesc.getIndex(); switch (metricDesc.getCapabilities().getType()) { case COMPLEX: return new ObjectMetricColumnSelector(metricDesc, currEntry, metricIndex); case LONG: return new LongMetricColumnSelector(currEntry, metricIndex); case FLOAT: return new FloatMetricColumnSelector(currEntry, metricIndex); case DOUBLE: return new DoubleMetricColumnSelector(currEntry, metricIndex); case STRING: throw new IllegalStateException("String is not a metric column type"); default: throw new ISE("Unknown metric value type: %s", metricDesc.getCapabilities().getType()); } }