Skip to content

Commit

Permalink
Merge pull request #1152 from Marketcetera/MATP-1157
Browse files Browse the repository at this point in the history
MATP-1157 Implement Trade Suggestions
  • Loading branch information
colinduplantis committed Apr 13, 2023
2 parents a7f25f3 + 18bc82b commit fca3936
Show file tree
Hide file tree
Showing 122 changed files with 2,127 additions and 285 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ hs_err_pid*

# Maven files
target
target-ide

# Eclipse files
.classpath
Expand Down
1 change: 1 addition & 0 deletions admin/admin-api/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.marketcetera.admin;

/* $License$ */

/**
* Tagging interface that provides the current user, whatever that means in a given context.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id$
* @since $Release$
*/
public interface HasCurrentUser
extends HasUser
{
}
1 change: 1 addition & 0 deletions admin/admin-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions admin/admin-rest-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions admin/admin-rpc-client/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions admin/admin-rpc-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions admin/admin-rpc-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions admin/admin-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions cluster/cluster-api/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions cluster/cluster-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions cluster/cluster-rpc-client/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions cluster/cluster-rpc-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions cluster/cluster-rpc-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions cluster/cluster-simple/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
74 changes: 74 additions & 0 deletions core/src/main/java/org/marketcetera/trade/AbstractSuggestion.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package org.marketcetera.trade;

import java.math.BigDecimal;

/* $License$ */

/**
* Provides common behavior for <code>Suggestion</code> implementations.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id$
* @since $Release$
*/
public abstract class AbstractSuggestion
implements Suggestion
{
/* (non-Javadoc)
* @see org.marketcetera.trade.Suggestion#getIdentifier()
*/
@Override
public String getIdentifier()
{
return identifier;
}
/* (non-Javadoc)
* @see org.marketcetera.trade.Suggestion#setIdentifier(java.lang.String)
*/
@Override
public void setIdentifier(String inIdentifier)
{
identifier = inIdentifier;
}
/* (non-Javadoc)
* @see org.marketcetera.trade.Suggestion#getScore()
*/
@Override
public BigDecimal getScore()
{
return score;
}
/* (non-Javadoc)
* @see org.marketcetera.trade.Suggestion#setScore(java.math.BigDecimal)
*/
@Override
public void setScore(BigDecimal inScore)
{
score = inScore;
}
/**
* Create a new AbstractSuggestion instance.
*/
protected AbstractSuggestion() {}
/**
* Create a new AbstractSuggestion instance.
*
* @param inIdentifier a <code>String<code> value
* @param inScore a <code>BigDecimal</code> value
*/
protected AbstractSuggestion(String inIdentifier,
BigDecimal inScore)
{
setIdentifier(inIdentifier);
setScore(inScore);
}
/**
* identifier value
*/
private String identifier;
/**
* score value
*/
private BigDecimal score;
private static final long serialVersionUID = 7713915144622410613L;
}
14 changes: 14 additions & 0 deletions core/src/main/java/org/marketcetera/trade/Factory.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,20 @@ public abstract OrderSingle createOrderSingle(
*/
public abstract OrderSingleSuggestion createOrderSingleSuggestion();

/**
* Creates a suggestion for a cancel order.
*
* @return an <code>OrderCancelSuggestion</code> value
*/
public abstract OrderCancelSuggestion createOrderCancelSuggestion();

/**
* Creates a suggestion for a replace order.
*
* @return an <code>OrderReplaceSuggestion</code> value
*/
public abstract OrderReplaceSuggestion createOrderReplaceSuggestion();

/**
* Creates an order to cancel a previously placed order as
* identified by the supplied execution report. The execution
Expand Down
17 changes: 16 additions & 1 deletion core/src/main/java/org/marketcetera/trade/FactoryImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,22 @@ public OrderSingle createOrderSingle() {
public OrderSingleSuggestion createOrderSingleSuggestion() {
return new OrderSingleSuggestionImpl();
}

/* (non-Javadoc)
* @see org.marketcetera.trade.Factory#createOrderCancelSuggestion()
*/
@Override
public OrderCancelSuggestion createOrderCancelSuggestion()
{
return new OrderCancelSuggestionImpl();
}
/* (non-Javadoc)
* @see org.marketcetera.trade.Factory#createOrderReplaceSuggestion()
*/
@Override
public OrderReplaceSuggestion createOrderReplaceSuggestion()
{
return new OrderReplaceSuggestionImpl();
}
@Override
public OrderCancel createOrderCancel(ExecutionReport inLatestReport) {
OrderCancelImpl order = new OrderCancelImpl();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package org.marketcetera.trade;

/* $License$ */

/**
* Contains a suggestion for a cancel order.
*
* <p>Instances of this type can be created via {@link Factory#createOrderCancelSuggestion()}
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id$
* @since $Release$
*/
public interface OrderCancelSuggestion
extends Suggestion,HasOrderCancel
{
/**
* Set the cancel order value.
*
* @param inOrderCancel the suggested order.
*/
void setOrderCancel(OrderCancel inOrderCancel);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package org.marketcetera.trade;

import java.math.BigDecimal;

/* $License$ */

/**
* Provides an {@link OrderCancelSuggestion} implementation.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id$
* @since $Release$
*/
public class OrderCancelSuggestionImpl
extends AbstractSuggestion
implements OrderCancelSuggestion
{
/**
* Create a new OrderCancelSuggestionImpl instance.
*/
public OrderCancelSuggestionImpl() {}
/**
* Create a new OrderCancelSuggestionImpl instance.
*
* @param inOrderCancel an <code>OrderCancel</code> value
*/
public OrderCancelSuggestionImpl(OrderCancel inOrderCancel)
{
setOrderCancel(inOrderCancel);
}
/**
* Create a new OrderCancelSuggestionImpl instance.
*
* @param inIdentifier a <code>String</code> value
* @param inScore a <code>BigDecimal</code> value
* @param inOrderCancel an <code>OrderCancel</code> value
*/
public OrderCancelSuggestionImpl(String inIdentifier,
BigDecimal inScore,
OrderCancel inOrderCancel)
{
super(inIdentifier,
inScore);
setOrderCancel(inOrderCancel);
}
/* (non-Javadoc)
* @see org.marketcetera.trade.HasOrderCancel#getOrderCancel()
*/
@Override
public OrderCancel getOrderCancel()
{
return orderCancel;
}
/* (non-Javadoc)
* @see org.marketcetera.trade.OrderCancelSuggestion#setOrderCancel(org.marketcetera.trade.OrderCancel)
*/
@Override
public void setOrderCancel(OrderCancel inOrderCancel)
{
orderCancel = inOrderCancel;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
StringBuilder builder = new StringBuilder();
builder.append("OrderCancelSuggestionImpl [identifier=").append(getIdentifier()).append(", score=")
.append(getScore()).append(", orderCancel=").append(orderCancel).append("]");
return builder.toString();
}
/**
* order Cancel value
*/
private OrderCancel orderCancel;
private static final long serialVersionUID = 2069691082438028206L;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package org.marketcetera.trade;

import java.math.BigDecimal;

/* $License$ */

/**
* Provides an {@link OrderReplaceSuggestion} implementation.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id$
* @since $Release$
*/
public class OrderReplaceSuggestionImpl
extends AbstractSuggestion
implements OrderReplaceSuggestion
{
/**
* Create a new OrderReplaceSuggestionImpl instance.
*/
public OrderReplaceSuggestionImpl() {}
/**
* Create a new OrderReplaceSuggestionImpl instance.
*
* @param inOrderReplace an <code>OrderReplace</code> value
*/
public OrderReplaceSuggestionImpl(OrderReplace inOrderReplace)
{
setOrderReplace(inOrderReplace);
}
/**
* Create a new OrderReplaceSuggestionImpl instance.
*
* @param inIdentifier a <code>String</code> value
* @param inScore a <code>BigDecimal</code> value
* @param inOrderReplace an <code>OrderReplace</code> value
*/
public OrderReplaceSuggestionImpl(String inIdentifier,
BigDecimal inScore,
OrderReplace inOrderReplace)
{
super(inIdentifier,
inScore);
setOrderReplace(inOrderReplace);
}
/* (non-Javadoc)
* @see org.marketcetera.trade.HasOrderReplace#getOrderReplace()
*/
@Override
public OrderReplace getOrderReplace()
{
return orderReplace;
}
/* (non-Javadoc)
* @see org.marketcetera.trade.OrderReplaceSuggestion#setOrderReplace(org.marketcetera.trade.OrderReplace)
*/
@Override
public void setOrderReplace(OrderReplace inOrderReplace)
{
orderReplace = inOrderReplace;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
StringBuilder builder = new StringBuilder();
builder.append("OrderReplaceSuggestionImpl [identifier=").append(getIdentifier()).append(", score=")
.append(getScore()).append(", orderReplace=").append(orderReplace).append("]");
return builder.toString();
}
/**
* order replace value
*/
private OrderReplace orderReplace;
private static final long serialVersionUID = 2069691082438028206L;
}
1 change: 1 addition & 0 deletions dare/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions dataflow/dataflow-api/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions dataflow/dataflow-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions dataflow/dataflow-rpc-client/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions dataflow/dataflow-rpc-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions dataflow/dataflow-rpc-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions dataflow/dataflow-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions eventbus/eventbus-api/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions eventbus/eventbus-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions eventbus/eventbus-guava/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions eventbus/eventbus-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions fix/fix-acceptor/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions fix/fix-api/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions fix/fix-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions fix/fix-rpc-client/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions fix/fix-rpc-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions fix/fix-rpc-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions fix/fix-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions fork/commons-csv/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions fork/commons-i18n/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions marketdata/marketdata-api/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
1 change: 1 addition & 0 deletions marketdata/marketdata-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target-ide/
Loading

0 comments on commit fca3936

Please sign in to comment.