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

org.knowm.xchange.kraken.dto.trade.KrakenUserTrade Maven / Gradle / Ivy

package org.knowm.xchange.kraken.dto.trade;

import java.math.BigDecimal;
import java.util.Date;
import org.knowm.xchange.currency.Currency;
import org.knowm.xchange.currency.CurrencyPair;
import org.knowm.xchange.dto.Order.OrderType;
import org.knowm.xchange.dto.trade.UserTrade;

public class KrakenUserTrade extends UserTrade {

  private final BigDecimal cost;

  public KrakenUserTrade(
      OrderType type,
      BigDecimal originalAmount,
      CurrencyPair currencyPair,
      BigDecimal price,
      Date timestamp,
      String id,
      String orderId,
      BigDecimal feeAmount,
      Currency feeCurrency,
      BigDecimal cost) {
    super(
        type,
        originalAmount,
        currencyPair,
        price,
        timestamp,
        id,
        orderId,
        feeAmount,
        feeCurrency,
        "");
    this.cost = cost;
  }

  public BigDecimal getCost() {
    return cost;
  }

  public static class Builder extends UserTrade.Builder {

    private BigDecimal cost;

    public static Builder from(KrakenUserTrade trade) {
      Builder builder = new Builder().cost(trade.getCost());
      builder
          .orderId(trade.getOrderId())
          .feeAmount(trade.getFeeAmount())
          .feeCurrency(trade.getFeeCurrency());
      builder
          .type(trade.getType())
          .originalAmount(trade.getOriginalAmount())
          .currencyPair(trade.getCurrencyPair())
          .price(trade.getPrice())
          .timestamp(trade.getTimestamp())
          .id(trade.getId());
      return builder;
    }

    public Builder cost(BigDecimal cost) {
      this.cost = cost;
      return this;
    }

    public KrakenUserTrade build() {
      KrakenUserTrade trade =
          new KrakenUserTrade(
              type,
              originalAmount,
              (CurrencyPair) instrument,
              price,
              timestamp,
              id,
              orderId,
              feeAmount,
              feeCurrency,
              cost);
      return trade;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy