Example usage for org.apache.commons.collections4 MultiValuedMap asMap

List of usage examples for org.apache.commons.collections4 MultiValuedMap asMap

Introduction

In this page you can find the example usage for org.apache.commons.collections4 MultiValuedMap asMap.

Prototype

Map<K, Collection<V>> asMap();

Source Link

Document

Returns a view of this multi-valued map as a Map from each distinct key to the non-empty collection of that key's associated values.

Usage

From source file:de.tud.inf.db.sparqlytics.repository.AbstractRepository.java

@Override
public MetricRegistry getStatistics() {
    MetricRegistry registry = new MetricRegistry();
    final Set<Cube> cubes = getCubes();
    registry.register("#cubes", new Gauge<Integer>() {
        @Override//w ww .ja v a2  s  .com
        public Integer getValue() {
            return cubes.size();
        }
    });
    final Set<Dimension> allDimensions = getDimensions();
    registry.register("#dimensions", new Gauge<Integer>() {
        @Override
        public Integer getValue() {
            return allDimensions.size();
        }
    });
    final Set<Measure> allMeasures = getMeasures();
    registry.register("#measures", new Gauge<Integer>() {
        @Override
        public Integer getValue() {
            return allMeasures.size();
        }
    });
    Histogram levelsPerDimension = registry.register("levels/dimension",
            new Histogram(new SlidingWindowReservoir(cubes.size())));
    for (Dimension dimension : getDimensions()) {
        levelsPerDimension.update(dimension.getLevels().size() - 1);
    }
    Histogram dimensionsPerCube = registry.register("dimensions/cube",
            new Histogram(new SlidingWindowReservoir(cubes.size())));
    Histogram measuresPerCube = registry.register("measures/cube",
            new Histogram(new SlidingWindowReservoir(cubes.size())));
    MultiValuedMap<Dimension, Cube> dimensionMap = new ArrayListValuedHashMap<>();
    MultiValuedMap<Measure, Cube> measureMap = new ArrayListValuedHashMap<>();
    for (Cube cube : cubes) {
        Set<Dimension> dimensions = cube.getDimensions();
        dimensionsPerCube.update(dimensions.size());
        for (Dimension dimension : dimensions) {
            dimensionMap.put(dimension, cube);
        }
        Set<Measure> measures = cube.getMeasures();
        measuresPerCube.update(measures.size());
        for (Measure measure : measures) {
            measureMap.put(measure, cube);
        }
    }
    Histogram cubesPerDimension = registry.register("cubes/dimension",
            new Histogram(new SlidingWindowReservoir(cubes.size())));
    for (Collection<Cube> values : dimensionMap.asMap().values()) {
        cubesPerDimension.update(values.size());
    }
    Histogram cubesPerMeasure = registry.register("cubes/measure",
            new Histogram(new SlidingWindowReservoir(cubes.size())));
    for (Collection<Cube> values : measureMap.asMap().values()) {
        cubesPerMeasure.update(values.size());
    }
    return registry;
}

From source file:fr.cph.chicago.connection.CtaConnect.java

/**
 * Connect//from w ww.  j  a v a  2 s .  c om
 *
 * @param requestType the type of request
 * @param params      the params
 * @return a string
 * @throws ConnectException
 */
@NonNull
public final InputStream connect(@NonNull final CtaRequestType requestType,
        @NonNull final MultiValuedMap<String, String> params) throws ConnectException {
    final StringBuilder address;
    switch (requestType) {
    case TRAIN_ARRIVALS:
        address = new StringBuilder(TRAINS_ARRIVALS_URL + "?key=" + ctaTrainKey);
        break;
    case TRAIN_FOLLOW:
        address = new StringBuilder(TRAINS_FOLLOW_URL + "?key=" + ctaTrainKey);
        break;
    case TRAIN_LOCATION:
        address = new StringBuilder(TRAINS_LOCATION_URL + "?key=" + ctaTrainKey);
        break;
    case BUS_ROUTES:
        address = new StringBuilder(BUSES_ROUTES_URL + "?key=" + ctaBusKey);
        break;
    case BUS_DIRECTION:
        address = new StringBuilder(BUSES_DIRECTION_URL + "?key=" + ctaBusKey);
        break;
    case BUS_STOP_LIST:
        address = new StringBuilder(BUSES_STOP_URL + "?key=" + ctaBusKey);
        break;
    case BUS_VEHICLES:
        address = new StringBuilder(BUSES_VEHICLES_URL + "?key=" + ctaBusKey);
        break;
    case BUS_ARRIVALS:
        address = new StringBuilder(BUSES_ARRIVAL_URL + "?key=" + ctaBusKey);
        break;
    case BUS_PATTERN:
        address = new StringBuilder(BUSES_PATTERN_URL + "?key=" + ctaBusKey);
        break;
    default:
        address = new StringBuilder();
    }
    Stream.of(params.asMap().entrySet()).flatMap(entry -> {
        final String key = entry.getKey();
        return Stream.of(entry.getValue())
                .map(value -> new StringBuilder().append("&").append(key).append("=").append(value));
    }).forEach(address::append);

    return connectUrl(address.toString());
}

From source file:org.phenotips.vocabulary.AbstractCSVAnnotationsExtension.java

@Override
public void extendTerm(VocabularyInputTerm term, Vocabulary vocabulary) {
    MultiValuedMap<String, String> termData = this.data.get(term.getId());
    if (termData == null || termData.isEmpty()) {
        return;/*from   w ww.  java 2 s.c  om*/
    }
    for (Map.Entry<String, Collection<String>> datum : termData.asMap().entrySet()) {
        if (!datum.getValue().isEmpty()) {
            term.set(datum.getKey(), datum.getValue());
        }
    }
}