/** * Converts the solr document given in the constructor into a time series of type <T> * * @return a time series of type <T> * @throws Exception if bad things happen. */ @Override @SuppressWarnings("PMD.SignatureDeclareThrowsException") public T call() throws Exception { BinaryTimeSeries.Builder timeSeriesBuilder = new BinaryTimeSeries.Builder(); document.forEach(attributeField -> timeSeriesBuilder.field(attributeField.getKey(), attributeField.getValue())); LOGGER.debug("Calling document converter with {}", document); T timeSeries = documentConverter.from(timeSeriesBuilder.build(), queryStart, queryEnd); LOGGER.debug("Returning time series {} to callee", timeSeries); return timeSeries; } }
/** * Converts the solr document given in the constructor into a time series of type <T> * * @return a time series of type <T> * @throws Exception if bad things happen. */ @Override @SuppressWarnings("PMD.SignatureDeclareThrowsException") public T call() throws Exception { BinaryTimeSeries.Builder timeSeriesBuilder = new BinaryTimeSeries.Builder(); document.forEach(attributeField -> timeSeriesBuilder.field(attributeField.getKey(), attributeField.getValue())); LOGGER.debug("Calling document converter with {}", document); T timeSeries = documentConverter.from(timeSeriesBuilder.build(), queryStart, queryEnd); LOGGER.debug("Returning time series {} to callee", timeSeries); return timeSeries; } }
/** * Converts the solr document given in the constructor into a time series of type <T> * * @return a time series of type <T> * @throws Exception if bad things happen. */ @Override @SuppressWarnings("PMD.SignatureDeclareThrowsException") public T call() throws Exception { BinaryTimeSeries.Builder timeSeriesBuilder = new BinaryTimeSeries.Builder(); Map<String, List<Object>> multivalued = new HashMap<>(); document.forEach(attributeField -> { String key = attributeField.name(); if (key.contains(ChronixLuceneStorageConstants.MULTI_VALUE_FIELD_DELIMITER)) { key = key.substring(0, key.indexOf(ChronixLuceneStorageConstants.MULTI_VALUE_FIELD_DELIMITER)); //Handle multivalued fields if (!multivalued.containsKey(key)) { multivalued.put(key, new ArrayList<>()); } multivalued.get(key).add(convert(attributeField)); } else { timeSeriesBuilder.field(key, convert(attributeField)); } }); multivalued.forEach(timeSeriesBuilder::field); LOGGER.debug("Calling document converter with {}", document); T timeSeries = documentConverter.from(timeSeriesBuilder.build(), queryStart, queryEnd); LOGGER.debug("Returning time series {} to callee", timeSeries); return timeSeries; }