diff options
Diffstat (limited to 'src')
9 files changed, 170 insertions, 9 deletions
diff --git a/src/main/java/edu/brown/cs/student/term/DatabaseQuerier.java b/src/main/java/edu/brown/cs/student/term/DatabaseQuerier.java new file mode 100644 index 0000000..7818a83 --- /dev/null +++ b/src/main/java/edu/brown/cs/student/term/DatabaseQuerier.java @@ -0,0 +1,71 @@ +package edu.brown.cs.student.term; +import edu.brown.cs.student.term.trade.Trade; + +import java.sql.*; +import java.util.ArrayList; +import java.util.List; + + +public class DatabaseQuerier{ + private static Connection conn = null; + + /** + * Makes a database querier for a particular sqlite database + * @param filename - String representing filepath of database + * @throws SQLException + * @throws ClassNotFoundException + */ + public DatabaseQuerier(String filename) throws SQLException, + ClassNotFoundException { + Class.forName("org.sqlite.JDBC"); + String urlToDB = "jdbc:sqlite:" + filename; + // AutoClosable TRY-WITH-RESOURCES ensures database connection will be closed when it is done + conn = DriverManager.getConnection(urlToDB); + } + + public static Connection getConn() { + return conn; + } + + /** + * Gets the names of all stocks in the database for the past two weeks from end date + * @param endDate - the end data for the 2 week period in unix time + * @return + * @throws SQLException + */ + public List<String> getRecentStocks(double endDate) throws SQLException { + List<String> stocks = new ArrayList<>(); + + PreparedStatement prep = conn.prepareStatement( + "SELECT DISTINCT stock_name FROM trades (WHERE trade_timestamp < ?)"); + + prep.setDouble(1, endDate); + ResultSet rs = prep.executeQuery(); + + while(rs.next()){ + stocks.add(rs.getString(1)); + } + + System.out.println(stocks.size()); + for (String s: stocks) { + System.out.println(s); + } + return stocks; + } + + //TODO: Fill these in + public List<List<Trade>> getAllTradesByStock() throws SQLException { + + PreparedStatement prep = conn.prepareStatement( + ""); + return null; + } + + public List<Trade> getTradeByStock() throws SQLException{ + return null; + } + + + + +} diff --git a/src/main/java/edu/brown/cs/student/term/Main.java b/src/main/java/edu/brown/cs/student/term/Main.java index c436b2e..a6a9764 100644 --- a/src/main/java/edu/brown/cs/student/term/Main.java +++ b/src/main/java/edu/brown/cs/student/term/Main.java @@ -2,6 +2,7 @@ package edu.brown.cs.student.term; import edu.brown.cs.student.term.repl.Command; import edu.brown.cs.student.term.repl.REPL; +import edu.brown.cs.student.term.repl.SetupCommand; import joptsimple.OptionParser; import joptsimple.OptionSet; @@ -45,10 +46,9 @@ public final class Main { } HashMap<String, Command> commandHashMap = new HashMap<>(); + commandHashMap.put("setup", new SetupCommand()); /** add commands to map here! */ REPL repl = new REPL(commandHashMap); repl.runREPL(); - - // TODO: Process commands in a REPL } }
\ No newline at end of file diff --git a/src/main/java/edu/brown/cs/student/term/hub/HubSearch.java b/src/main/java/edu/brown/cs/student/term/hub/HubSearch.java new file mode 100644 index 0000000..87e723b --- /dev/null +++ b/src/main/java/edu/brown/cs/student/term/hub/HubSearch.java @@ -0,0 +1,4 @@ +package edu.brown.cs.student.term.hub; + +public class HubSearch { +} diff --git a/src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java b/src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java new file mode 100644 index 0000000..7cb1011 --- /dev/null +++ b/src/main/java/edu/brown/cs/student/term/hub/LinkMapper.java @@ -0,0 +1,4 @@ +package edu.brown.cs.student.term.hub; + +public class LinkMapper { +} diff --git a/src/main/java/edu/brown/cs/student/term/hub/SuspicionRanker.java b/src/main/java/edu/brown/cs/student/term/hub/SuspicionRanker.java new file mode 100644 index 0000000..a1196d8 --- /dev/null +++ b/src/main/java/edu/brown/cs/student/term/hub/SuspicionRanker.java @@ -0,0 +1,4 @@ +package edu.brown.cs.student.term.hub; + +public class SuspicionRanker { +} diff --git a/src/main/java/edu/brown/cs/student/term/repl/Command.java b/src/main/java/edu/brown/cs/student/term/repl/Command.java index f8b0b04..056c7df 100644 --- a/src/main/java/edu/brown/cs/student/term/repl/Command.java +++ b/src/main/java/edu/brown/cs/student/term/repl/Command.java @@ -10,10 +10,4 @@ public interface Command { * @param args arguments for the command */ String run(String[] args); - - /** - * Used to print command output to GUI. - * @return String representing neighbors found by NeighborsCommand and RadiusCommand commands - */ - String toString(); } diff --git a/src/main/java/edu/brown/cs/student/term/repl/REPL.java b/src/main/java/edu/brown/cs/student/term/repl/REPL.java index 0be7e3f..a1d5c23 100644 --- a/src/main/java/edu/brown/cs/student/term/repl/REPL.java +++ b/src/main/java/edu/brown/cs/student/term/repl/REPL.java @@ -1,5 +1,4 @@ package edu.brown.cs.student.term.repl; -import edu.brown.cs.student.term.repl.Command; import java.io.BufferedReader; import java.io.IOException; diff --git a/src/main/java/edu/brown/cs/student/term/repl/SetupCommand.java b/src/main/java/edu/brown/cs/student/term/repl/SetupCommand.java new file mode 100644 index 0000000..1d84f49 --- /dev/null +++ b/src/main/java/edu/brown/cs/student/term/repl/SetupCommand.java @@ -0,0 +1,36 @@ +package edu.brown.cs.student.term.repl; + +import edu.brown.cs.student.term.DatabaseQuerier; + +public class SetupCommand implements Command { + + private String error; + private static DatabaseQuerier dq; + + @Override + /** + * Sets up connection to the database + * Returns an empty string if no errors, non empty with error message otherwise + */ + public String run(String[] args) { + error = ""; + if(args.length == 1){ + try{ + dq = new DatabaseQuerier(args[0]); + } catch (Exception e) { + error = "ERROR: Could not connect to database. Ensure this is a valid database."; + System.out.println(error); + return error; + } + } else { + error = "ERROR: Incorrect number of arguments for setup command"; + System.out.println(error); + return error; + } + return error; + } + + public static DatabaseQuerier getDq() { + return dq; + } +} diff --git a/src/main/java/edu/brown/cs/student/term/trade/Trade.java b/src/main/java/edu/brown/cs/student/term/trade/Trade.java new file mode 100644 index 0000000..831f9f1 --- /dev/null +++ b/src/main/java/edu/brown/cs/student/term/trade/Trade.java @@ -0,0 +1,49 @@ +package edu.brown.cs.student.term.trade; + +public class Trade { + + private int id; + private String stock; + private boolean isBuy; + private double timestamp; + private String holder; + + public Trade(int id, String stockName, boolean buy, double ts, String holderName){ + this.id = id; + this.stock = stockName; + this.isBuy = buy; + this.timestamp = ts; + this.holder = holderName; + } + + public int getId() { + return id; + } + + public boolean isBuy() { + return isBuy; + } + + public double getTimestamp() { + return timestamp; + } + + public String getStock() { + return stock; + } + + public String getHolder() { + return holder; + } + + @Override + public String toString() { + return "Trade{" + + "id=" + id + + ", stock='" + stock + '\'' + + ", isBuy=" + isBuy + + ", timestamp=" + timestamp + + ", holder='" + holder + '\'' + + '}'; + } +} |