All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fnklabs.draenei.analytics.SearchResultReducerFactory Maven / Gradle / Ivy

package com.fnklabs.draenei.analytics;

import com.fnklabs.draenei.MetricsFactory;
import com.hazelcast.mapreduce.Reducer;
import com.hazelcast.mapreduce.ReducerFactory;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class SearchResultReducerFactory implements ReducerFactory {
    private final long totalDocuments;

    public SearchResultReducerFactory(long totalDocuments) {
        this.totalDocuments = totalDocuments;
    }


    @Override
    public Reducer newReducer(Long key) {
        return new ResultReducer(totalDocuments);
    }


    private enum MetricsType implements MetricsFactory.Type {
        SEARCH_REDUCER;
    }

    private static class ResultReducer extends Reducer {
        private final long totalDocuments;
        private List searchResults = Collections.synchronizedList(new ArrayList<>());


        public ResultReducer(long totalDocuments) {
            this.totalDocuments = totalDocuments;
        }

        @Override
        public void reduce(Double value) {
            searchResults.add(value);
        }

        @Override
        public Double finalizeReduce() {
            return searchResults.stream().mapToDouble(item -> item).sum();
        }


    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy