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

com.sportradar.unifiedodds.sdk.impl.markets.OutcomeDescriptionImpl Maven / Gradle / Ivy

/*
 * Copyright (C) Sportradar AG. See LICENSE for full license governing this code
 */

package com.sportradar.unifiedodds.sdk.impl.markets;

import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableMap;
import com.sportradar.unifiedodds.sdk.caching.ci.markets.MarketOutcomeCI;
import com.sportradar.unifiedodds.sdk.entities.markets.OutcomeDescription;

import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * Created on 14/06/2017.
 * // TODO @eti: Javadoc
 */
public class OutcomeDescriptionImpl implements OutcomeDescription {
    private final String id;
    private final Map names;
    private final Map descriptions;

    OutcomeDescriptionImpl(MarketOutcomeCI ci, List locales) {
        Preconditions.checkNotNull(ci);
        Preconditions.checkNotNull(locales);
        Preconditions.checkArgument(!locales.isEmpty());

        id = ci.getId();

        names = locales.stream().filter(l -> ci.getName(l) != null)
                .collect(Collectors.toMap(k -> k, ci::getName));

        descriptions = locales.stream().filter(l -> ci.getDescription(l) != null)
                .collect(Collectors.toMap(k -> k, ci::getDescription));
    }
    public OutcomeDescriptionImpl(String id, Map names) {
        Preconditions.checkArgument(!Strings.isNullOrEmpty(id));
        Preconditions.checkNotNull(names);

        this.id = id;
        this.names = ImmutableMap.copyOf(names);
        this.descriptions = Collections.emptyMap();
    }

    @Override
    public String getId() {
        return id;
    }

    @Override
    public String getName(Locale locale) {
        Preconditions.checkNotNull(locale);

        return names.get(locale);
    }

    @Override
    public String getDescription(Locale locale) {
        Preconditions.checkNotNull(locale);

        return descriptions.get(locale);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy