info.bitrich.xchangestream.bitflyer.dto.BitflyerTrade Maven / Gradle / Ivy
package info.bitrich.xchangestream.bitflyer.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.knowm.xchange.currency.CurrencyPair;
import org.knowm.xchange.dto.Order;
import org.knowm.xchange.dto.marketdata.Trade;
import java.math.BigDecimal;
/**
* Created by Lukas Zaoralek on 15.11.17.
*/
public class BitflyerTrade extends BitflyerMarketEvent {
private final String id;
private final String side;
private final BigDecimal price;
private final BigDecimal size;
private final String buy_child_order_acceptance_id;
private final String sell_child_order_acceptance_id;
public BitflyerTrade(@JsonProperty("id") String id,
@JsonProperty("side") String side,
@JsonProperty("price") BigDecimal price,
@JsonProperty("size") BigDecimal size,
@JsonProperty("exec_date") String timestamp,
@JsonProperty("buy_child_order_acceptance_id") String buy_child_order_acceptance_id,
@JsonProperty("sell_child_order_acceptance_id") String sell_child_order_acceptance_id) {
super(timestamp);
this.id = id;
this.side = side;
this.price = price;
this.size = size;
this.buy_child_order_acceptance_id = buy_child_order_acceptance_id;
this.sell_child_order_acceptance_id = sell_child_order_acceptance_id;
}
public String getId() {
return id;
}
public String getSide() {
return side;
}
public BigDecimal getPrice() {
return price;
}
public BigDecimal getSize() {
return size;
}
public String getBuy_child_order_acceptance_id() {
return buy_child_order_acceptance_id;
}
public String getSell_child_order_acceptance_id() {
return sell_child_order_acceptance_id;
}
public Order.OrderType getOrderSide() {
return side.equals("SELL") ? Order.OrderType.ASK : Order.OrderType.BID;
}
public Trade toTrade(CurrencyPair pair) {
Order.OrderType orderType = getOrderSide();
return new Trade(orderType, size, pair, price, getDate(), id);
}
}