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

com.sportradar.unifiedodds.sdk.impl.oddsentities.markets.MarketWithSettlementImpl Maven / Gradle / Ivy

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

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

import com.google.common.base.Preconditions;
import com.sportradar.unifiedodds.sdk.caching.NamedValuesProvider;
import com.sportradar.unifiedodds.sdk.entities.NamedValue;
import com.sportradar.unifiedodds.sdk.impl.markets.NameProvider;
import com.sportradar.unifiedodds.sdk.oddsentities.MarketDefinition;
import com.sportradar.unifiedodds.sdk.oddsentities.MarketWithSettlement;
import com.sportradar.unifiedodds.sdk.oddsentities.OutcomeSettlement;

import java.util.List;
import java.util.Locale;
import java.util.Map;

/**
 * Created on 24/06/2017.
 * // TODO @eti: Javadoc
 */
class MarketWithSettlementImpl extends MarketImpl implements MarketWithSettlement {
    private final List outcomeSettlements;
    private final Integer voidReason;
    private final NamedValuesProvider namedValuesProvider;

    MarketWithSettlementImpl(int id, NameProvider nameProvider, Map specifiersMap,
                             Map extendedSpecifiers, MarketDefinition marketDefinition, Locale defaultLocale,
                             Integer voidReason, List outcomes,
                             NamedValuesProvider namedValuesProvider) {
        super(id, nameProvider, specifiersMap, extendedSpecifiers, marketDefinition, defaultLocale);
        Preconditions.checkNotNull(namedValuesProvider);

        this.voidReason = voidReason;
        this.outcomeSettlements = outcomes;
        this.namedValuesProvider = namedValuesProvider;
    }

    /**
     * @return a list of the settlements for the different outcomes
     */
    @Override
    public List getOutcomeSettlements() {
        return outcomeSettlements;
    }

    /**
     * Returns the void reason descriptor
     *
     * @return the void reason descriptor
     */
    @Override
    public NamedValue getVoidReasonValue() {
        if (voidReason == null) {
            return null;
        }

        return namedValuesProvider.getVoidReasons().getNamedValue(voidReason);
    }

    /**
     * Returns the void reason description
     *
     * @return the void reason description
     */
    @Override
    public String getVoidReason() {
        if (voidReason == null) {
            return null;
        }

        return namedValuesProvider.getVoidReasons().getNamedValue(voidReason).getDescription();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy