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

com.sportradar.unifiedodds.sdk.impl.oddsentities.BetStopImpl Maven / Gradle / Ivy

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

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

import com.sportradar.uf.datamodel.UFBetStop;
import com.sportradar.unifiedodds.sdk.entities.SportEvent;
import com.sportradar.unifiedodds.sdk.impl.UnifiedFeedConstants;
import com.sportradar.unifiedodds.sdk.oddsentities.BetStop;
import com.sportradar.unifiedodds.sdk.oddsentities.MarketStatus;
import com.sportradar.unifiedodds.sdk.oddsentities.MessageTimestamp;
import com.sportradar.unifiedodds.sdk.oddsentities.Producer;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * Created on 22/06/2017.
 * // TODO @eti: Javadoc
 */
class BetStopImpl extends EventMessageImpl implements BetStop {
    private final MarketStatus marketStatus;
    private final List groups;

    BetStopImpl(T sportEvent, UFBetStop message, Producer producer, byte[] rawMessage, MessageTimestamp timestamp) {
        super(sportEvent, rawMessage, producer, timestamp, message.getRequestId());

        if (message.getMarketStatus() == null) {
            marketStatus = MarketStatus.Suspended;
        } else {
            switch (message.getMarketStatus()) {
                case ACTIVE:
                    marketStatus = MarketStatus.Active;
                    break;
                case INACTIVE:
                    marketStatus = MarketStatus.Deactivated;
                    break;
                case SUSPENDED:
                    marketStatus = MarketStatus.Suspended;
                    break;
                case HANDED_OVER:
                    marketStatus = MarketStatus.HandedOver;
                    break;
                case SETTLED:
                    marketStatus = MarketStatus.Settled;
                    break;
                case CANCELLED:
                    marketStatus = MarketStatus.Cancelled;
                    break;
                default:
                    marketStatus = MarketStatus.Suspended;
            }
        }

        groups = message.getGroups() == null ? null :
                Arrays.stream(message.getGroups().split(UnifiedFeedConstants.MARKET_GROUPS_DELIMITER)).collect(Collectors.toList());
    }

    /**
     * @return what group of markets this message applies to. If "all" it means all available
     * markets. Otherwise, only markets who have the specified String as one of their
     * groups
     */
    @Override
    public List getGroups() {
        return groups;
    }

    /**
     * Returns the status of the market
     *
     * @return - the status of the market
     */
    @Override
    public MarketStatus getMarketStatus() {
        return marketStatus;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy