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

com.sportradar.unifiedodds.sdk.impl.oddsentities.FixtureChangeImpl 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.UFChangeType;
import com.sportradar.uf.datamodel.UFFixtureChange;
import com.sportradar.unifiedodds.sdk.entities.SportEvent;
import com.sportradar.unifiedodds.sdk.oddsentities.FixtureChange;
import com.sportradar.unifiedodds.sdk.oddsentities.FixtureChangeType;
import com.sportradar.unifiedodds.sdk.oddsentities.MessageTimestamp;
import com.sportradar.unifiedodds.sdk.oddsentities.Producer;

import java.util.Date;

/**
 * Created on 22/06/2017.
 * // TODO @eti: Javadoc
 */
class FixtureChangeImpl extends EventMessageImpl implements FixtureChange {
    private final FixtureChangeType changeType;
    private final Date nextLiveTime;
    private final Date startTime;

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

        UFChangeType type = message.getChangeType();
        if (type == null) {
            type = UFChangeType.FORMAT;
        }
        switch (type) {
            case CANCELLED:
                changeType = FixtureChangeType.Cancelled;
                break;
            case DATETIME:
                changeType = FixtureChangeType.TimeUpdate;
                break;
            case NEW:
                changeType = FixtureChangeType.New;
                break;
            case COVERAGE:
                changeType = FixtureChangeType.Coverage;
                break;
            case FORMAT:
            default:
                changeType = FixtureChangeType.OtherChange;
                break;
        }

        nextLiveTime = message.getNextLiveTime() == null ? null : new Date(message.getNextLiveTime());
        startTime = new Date(message.getStartTime());
    }

    @Override
    public FixtureChangeType getChangeType() {
        return changeType;
    }

    @Override
    public Date getNextLiveTime() {
        return nextLiveTime;
    }

    @Override
    public Date getStartTime() {
        return startTime;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy