/*******************************************************************************
* Copyright (c) 2013 Luigi Sgro. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Luigi Sgro - initial API and implementation
******************************************************************************/
package com.quantcomponents.algo;
import java.io.Serializable;
import java.util.Date;
/**
* Trade bean
*/
public class TradeBean implements ITrade, Serializable {
private static final long serialVersionUID = -2084156663404127910L;
private final IOrder order;
private final String exchange;
private final Date executionTime;
private final int amount;
private final double executionPrice;
private final double averagePrice;
public static TradeBean copyOf(ITrade trade) {
return new TradeBean(trade.getOrder() == null ? null : OrderBean.copyOf(trade.getOrder()), trade.getExchange(), trade.getExecutionTime(), trade.getAmount(), trade.getExecutionPrice(), trade.getAveragePrice());
}
public TradeBean(IOrder order, String exchange, Date executionTime, int amount, double executionPrice, double averagePrice) {
this.order = order;
this.exchange = exchange;
this.executionTime = executionTime;
this.amount = amount;
this.executionPrice = executionPrice;
this.averagePrice = averagePrice;
}
@Override
public IOrder getOrder() {
return order;
}
@Override
public String getExchange() {
return exchange;
}
@Override
public Date getExecutionTime() {
return executionTime;
}
@Override
public int getAmount() {
return amount;
}
@Override
public double getExecutionPrice() {
return executionPrice;
}
@Override
public double getAveragePrice() {
return averagePrice;
}
@Override
public String toString() {
return stringRepr(this);
}
public static String stringRepr(ITrade trade) {
StringBuilder buffer = new StringBuilder();
buffer.append("trade [");
buffer.append(trade.getOrder());
buffer.append("; time: ");
buffer.append(trade.getExecutionTime());
buffer.append("; amnt: ");
buffer.append(trade.getAmount());
buffer.append("; prc: ");
buffer.append(trade.getExecutionPrice());
buffer.append("; avg prc: ");
buffer.append(trade.getAveragePrice());
buffer.append("]");
return buffer.toString();
}
}