diff --git a/BasicServlet.java b/BasicServlet.java new file mode 100644 index 0000000..3d99766 --- /dev/null +++ b/BasicServlet.java @@ -0,0 +1,32 @@ +package com.origamisoftware.teach.advanced.services; + +import com.origamisoftware.teach.advanced.model.StockQuote; +import com.origamisoftware.teach.advanced.util.Interval; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Calendar; +import java.util.List; +import javax.servlet.http.*; + +/** + * BasicServlet request data from the web service that is used by the WebStockService + */ +public class BasicServlet extends HttpServlet{ + private String symbol; + private Calendar date; + + public BasicServlet(String symbol, Calendar date){ + this.symbol = symbol; + this.date = date; + } + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + + PrintWriter out = response.getWriter(); + out.println(""); + out.println("
"); + out.println("http://finance.yahoo.com/d/quotes.csv?s="+ symbol + "d2=" + date); + out.println(""); + out.println(""); + } +} \ No newline at end of file diff --git a/ServiceFactory.java b/ServiceFactory.java new file mode 100644 index 0000000..58312b0 --- /dev/null +++ b/ServiceFactory.java @@ -0,0 +1,28 @@ +package com.origamisoftware.teach.advanced.services; + +/** + * A factory that returns a Services. + */ +public class ServiceFactory { + + /** + * Prevent instantiations + */ + private ServiceFactory() {} + + /** + * + * @return get aStockService instance
+ */
+ public static WebStockService getStockService() {
+ return new WebStockService();
+ }
+
+ /**
+ *
+ * @return get a UserService instance
+ */
+ public static UserService getUserService() {
+ return new DatabaseUserService();
+ }
+}
diff --git a/WebServiceTest.java b/WebServiceTest.java
new file mode 100644
index 0000000..bdb32e4
--- /dev/null
+++ b/WebServiceTest.java
@@ -0,0 +1,14 @@
+package com.origamisoftware.teach.advanced.services;
+
+
+import org.junit.Test;
+import static org.junit.Assert.assertNotNull;
+
+public class WebServiceTest {
+
+ @Test
+ public void testGetStockServiceInstance() {
+ WebStockService webStockService = ServiceFactory.getStockService();
+ assertNotNull(webStockService);
+ }
+}
diff --git a/WebStockService.java b/WebStockService.java
new file mode 100644
index 0000000..8e39fe1
--- /dev/null
+++ b/WebStockService.java
@@ -0,0 +1,46 @@
+package com.origamisoftware.teach.advanced.services;
+
+import com.origamisoftware.teach.advanced.model.StockQuote;
+import com.origamisoftware.teach.advanced.util.Interval;
+import yahoofinance.Stock;
+import yahoofinance.YahooFinance;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * I assume this interacts with the YF API directly?
+ * not needing the servlet
+ * I made a simple servlet but couldn't understand how to
+ * integrate it into the WenStockService
+ */
+public class WebStockService implements StockService {
+ private Stock stock;
+
+ @Override
+ public StockQuote getQuote(String symbol) throws StockServiceException, IOException {
+ stock = YahooFinance.get(symbol);
+ String yfSymbol = stock.toString();
+
+ return new StockQuote(new BigDecimal(100), Calendar.getInstance().getTime(), yfSymbol);
+ }
+
+ @Override
+ public List