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

estonlabs.cxtl.exchanges.gateio.api.v4.domain.OrderBook Maven / Gradle / Ivy

The newest version!
package estonlabs.cxtl.exchanges.gateio.api.v4.domain;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import estonlabs.cxtl.common.stream.managed.MarketData;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@JsonIgnoreProperties(ignoreUnknown = true)
public class OrderBook extends StreamMessage implements MarketData {

    @JsonProperty("current")
    private Long currentTimestampMs;
    @JsonProperty("update")
    private Long updateTimestampMs;

    @Override
    public MessageType getMessageType() {
        return MessageType.DATA;
    }

    @Override
    public boolean isSnapshot() {
        return false;
    }

    @Override
    public String getTopic() {
        return getChannel();
    }

    @Override
    public Long getSeqNo() {
        return null;
    }

    @Override
    public Long getTimestamp() {
        return getTimeMS();
    }

    @Override
    public boolean hasData() {
        return true;
    }

    @JsonIgnoreProperties(ignoreUnknown = true)
    @Data
    public static class OrderBookUpdateResult {

        @JsonProperty("t")
        private Long timestampMs;

        @JsonProperty("s")
        private String symbol;

        @JsonProperty("U")
        private Long firstUpdateID;

        @JsonProperty("u")
        private Long lastUpdateID;

        @JsonDeserialize(using = PriceLevelDeserializer.class)
        @JsonProperty("b")
        @JsonAlias("bids")
        private List bids;

        @JsonDeserialize(using = PriceLevelDeserializer.class)
        @JsonProperty("a")
        @JsonAlias("asks")
        private List asks;

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy