aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/edu/brown/cs/student/term/profit/ProfitCalculation.java23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/main/java/edu/brown/cs/student/term/profit/ProfitCalculation.java b/src/main/java/edu/brown/cs/student/term/profit/ProfitCalculation.java
index 0fe35d9..7f08460 100644
--- a/src/main/java/edu/brown/cs/student/term/profit/ProfitCalculation.java
+++ b/src/main/java/edu/brown/cs/student/term/profit/ProfitCalculation.java
@@ -19,10 +19,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
-import java.util.LinkedList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
public class ProfitCalculation {
private Connection conn;
@@ -77,6 +74,20 @@ public class ProfitCalculation {
/**
* This method fills the maps of sell and buy orders with lists of oldest - new trades.
*/
+
+ private String validateTicker(String ticker) {
+ //this is cleaning some improperly formatted tickers
+ ticker = ticker.replaceAll("[^a-zA-Z0-9]", "").toUpperCase();
+ if(ticker.contains("[0-9]") ||
+ ticker.length() > 5 ||
+ ticker.length() < 2 ||
+ ticker.contains("NONE")) {
+ return "";
+ }
+
+ return ticker;
+ }
+
private void organizeOrders() {
//get a list of trades for a person to consider
try {
@@ -92,6 +103,10 @@ public class ProfitCalculation {
while (rs.next()) {
String ticker = rs.getString("stock_name");
+ ticker = validateTicker(ticker);
+ if(ticker.equals("")){
+ continue;
+ }
int shares = rs.getInt("number_of_shares");
double price = rs.getDouble("share_price");
OrderTuple order = new OrderTuple(shares, price, rs.getDate("trade_timestamp"));