class Builder extends UserTrade.Builder {

    private String baseCounterparty = "";
    private String counterCounterparty = "";

    private BigDecimal baseTransferFee = BigDecimal.ZERO;
    private BigDecimal counterTransferFee = BigDecimal.ZERO;

    public static Builder from(final RippleUserTrade trade) {
      final Builder builder =
          new Builder()
              .baseCounterparty(trade.getBaseCounterparty())
              .counterCounterparty(trade.getCounterCounterparty());
      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 baseCounterparty(final String value) {
      baseCounterparty = value;
      return this;
    }

    public Builder counterCounterparty(final String value) {
      counterCounterparty = value;
      return this;
    }

    public Builder baseTransferFee(final BigDecimal value) {
      baseTransferFee = value;
      return this;
    }

    public Builder counterTransferFee(final BigDecimal value) {
      counterTransferFee = value;
      return this;
    }

    @Override
    public RippleUserTrade build() {<FILL_FUNCTION_BODY>}
  }

      final RippleUserTrade trade =
          new RippleUserTrade(
              type,
              originalAmount,
              (CurrencyPair) instrument,
              price,
              timestamp,
              id,
              orderId,
              feeAmount,
              feeCurrency,
              baseCounterparty,
              counterCounterparty,
              baseTransferFee,
              counterTransferFee);
      return trade;
    
<methods>public void <init>(org.knowm.xchange.dto.Order.OrderType, java.math.BigDecimal, org.knowm.xchange.instrument.Instrument, java.math.BigDecimal, java.util.Date, java.lang.String, java.lang.String, java.math.BigDecimal, org.knowm.xchange.currency.Currency, java.lang.String) ,public static org.knowm.xchange.dto.trade.UserTrade.Builder builder() ,public boolean equals(java.lang.Object) ,public java.math.BigDecimal getFeeAmount() ,public org.knowm.xchange.currency.Currency getFeeCurrency() ,public java.lang.String getOrderId() ,public java.lang.String getOrderUserReference() ,public int hashCode() ,public java.lang.String toString() <variables>private final non-sealed java.math.BigDecimal feeAmount,private final non-sealed org.knowm.xchange.currency.Currency feeCurrency,private final non-sealed java.lang.String orderId,private final non-sealed java.lang.String orderUserReference,private static final long serialVersionUID