package org.cryptocoinpartners.schema; import org.cryptocoinpartners.enumeration.TransactionType; import org.joda.time.Instant; import com.google.inject.assistedinject.Assisted; public interface TransactionFactory { //SpecificOrder create(Instant time, Market market, BigDecimal volume, String comment); // generalOrder.getTime(), market, volume, generalOrder, generalOrder.getComment()); Transaction create(Portfolio portfolio, Exchange exchange, Asset currency, TransactionType type, @Assisted("transactionAmount") Amount amount, @Assisted("transactionPrice") Amount price); Transaction create(Order order, Instant creationTime); Transaction create(Fill fill, Instant creationTime); Transaction create(Fill fill, Portfolio portfolio, Exchange exchange, Asset currency, TransactionType type, @Assisted("transactionAmount") Amount amount, @Assisted("transactionPrice") Amount price); // // SpecificOrder create(Instant time, Market market, long volumeCount); // // SpecificOrder create(Instant time, Market market, long volumeCount, String comment); // // SpecificOrder create(Instant time, Market market, long volumeCount, Order parentOrder, String comment); // // SpecificOrder create(LimitOrder limitOrder, com.xeiam.xchange.Exchange xchangeExchange, Portfolio portfolio, Date date); // // SpecificOrder create(Instant time, Portfolio portfolio, Market market, Amount volume, Order parentOrder, String comment); // // SpecificOrder create(Instant time, Portfolio portfolio, Market market, BigDecimal volume, String comment); // // SpecificOrder create(Instant time, Portfolio portfolio, Market market, double volume, String comment); }