You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by jb...@apache.org on 2010/04/01 17:14:26 UTC

svn commit: r929997 - in /incubator/aries/trunk/samples/ariestrader-sample/modules: ariestrader-persist-jdbc/src/main/java/org/apache/aries/samples/ariestrader/persist/jdbc/ ariestrader-persist-jpa-am/src/main/java/org/apache/aries/samples/ariestrader/...

Author: jbohn
Date: Thu Apr  1 15:14:25 2010
New Revision: 929997

URL: http://svn.apache.org/viewvc?rev=929997&view=rev
Log:
ARIES-275 AriesTrader - update quote ranges on buy/sell activity

Modified:
    incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jdbc/src/main/java/org/apache/aries/samples/ariestrader/persist/jdbc/TradeJdbc.java
    incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jpa-am/src/main/java/org/apache/aries/samples/ariestrader/persist/jpa/am/TradeJpaAm.java
    incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jpa-cm/src/main/java/org/apache/aries/samples/ariestrader/persist/jpa/cm/TradeJpaCm.java

Modified: incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jdbc/src/main/java/org/apache/aries/samples/ariestrader/persist/jdbc/TradeJdbc.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jdbc/src/main/java/org/apache/aries/samples/ariestrader/persist/jdbc/TradeJdbc.java?rev=929997&r1=929996&r2=929997&view=diff
==============================================================================
--- incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jdbc/src/main/java/org/apache/aries/samples/ariestrader/persist/jdbc/TradeJdbc.java (original)
+++ incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jdbc/src/main/java/org/apache/aries/samples/ariestrader/persist/jdbc/TradeJdbc.java Thu Apr  1 15:14:25 2010
@@ -1132,8 +1132,12 @@ public class TradeJdbc implements TradeS
             }
 
             BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal low = quoteData.getLow();
+            BigDecimal high= quoteData.getHigh();
+            if (newPrice.compareTo(high) == 1) high = newPrice;
+            else if (newPrice.compareTo(low) == -1) low = newPrice;
 
-            updateQuotePriceVolume(conn, quoteData.getSymbol(), newPrice, newVolume);
+            updateQuotePriceVolume(conn, quoteData.getSymbol(), newPrice, newVolume, low, high);
             quoteData = getQuote(conn, symbol);
 
             commit(conn);
@@ -1148,7 +1152,7 @@ public class TradeJdbc implements TradeS
         return quoteData;
     }
 
-    private void updateQuotePriceVolume(Connection conn, String symbol, BigDecimal newPrice, double newVolume)
+    private void updateQuotePriceVolume(Connection conn, String symbol, BigDecimal newPrice, double newVolume, BigDecimal low, BigDecimal high)
         throws Exception {
 
         PreparedStatement stmt = getStatement(conn, updateQuotePriceVolumeSQL);
@@ -1156,7 +1160,9 @@ public class TradeJdbc implements TradeS
         stmt.setBigDecimal(1, newPrice);
         stmt.setBigDecimal(2, newPrice);
         stmt.setDouble(3, newVolume);
-        stmt.setString(4, symbol);
+        stmt.setBigDecimal(4, low);
+        stmt.setBigDecimal(5, high);
+        stmt.setString(6, symbol);
 
         stmt.executeUpdate();
         stmt.close();
@@ -1549,7 +1555,7 @@ public class TradeJdbc implements TradeS
         "update orderejb set " + "holding_holdingID = ? " + "where orderid = ?";
 
     private static final String updateQuotePriceVolumeSQL =
-        "update quoteejb set " + "price = ?, change1 = ? - open1, volume = ? " + "where symbol = ?";
+        "update quoteejb set " + "price = ?, change1 = ? - open1, volume = ?, low = ?, high = ? " + "where symbol = ?";
 
     public void init() {
         if (initialized)

Modified: incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jpa-am/src/main/java/org/apache/aries/samples/ariestrader/persist/jpa/am/TradeJpaAm.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jpa-am/src/main/java/org/apache/aries/samples/ariestrader/persist/jpa/am/TradeJpaAm.java?rev=929997&r1=929996&r2=929997&view=diff
==============================================================================
--- incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jpa-am/src/main/java/org/apache/aries/samples/ariestrader/persist/jpa/am/TradeJpaAm.java (original)
+++ incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jpa-am/src/main/java/org/apache/aries/samples/ariestrader/persist/jpa/am/TradeJpaAm.java Thu Apr  1 15:14:25 2010
@@ -643,6 +643,8 @@ public class TradeJpaAm implements Trade
             quote.setPrice(newPrice);
             quote.setVolume(quote.getVolume() + sharesTraded);
             quote.setChange((newPrice.subtract(quote.getOpen()).doubleValue()));
+            if (newPrice.compareTo(quote.getHigh()) == 1) quote.setHigh(newPrice);
+            else if (newPrice.compareTo(quote.getLow()) == -1) quote.setLow(newPrice);
 
             entityManager.getTransaction().begin();
             entityManager.merge(quote);

Modified: incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jpa-cm/src/main/java/org/apache/aries/samples/ariestrader/persist/jpa/cm/TradeJpaCm.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jpa-cm/src/main/java/org/apache/aries/samples/ariestrader/persist/jpa/cm/TradeJpaCm.java?rev=929997&r1=929996&r2=929997&view=diff
==============================================================================
--- incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jpa-cm/src/main/java/org/apache/aries/samples/ariestrader/persist/jpa/cm/TradeJpaCm.java (original)
+++ incubator/aries/trunk/samples/ariestrader-sample/modules/ariestrader-persist-jpa-cm/src/main/java/org/apache/aries/samples/ariestrader/persist/jpa/cm/TradeJpaCm.java Thu Apr  1 15:14:25 2010
@@ -507,6 +507,8 @@ public class TradeJpaCm implements Trade
         quote.setPrice(newPrice);
         quote.setVolume(quote.getVolume() + sharesTraded);
         quote.setChange((newPrice.subtract(quote.getOpen()).doubleValue()));
+        if (newPrice.compareTo(quote.getHigh()) == 1) quote.setHigh(newPrice);
+        else if (newPrice.compareTo(quote.getLow()) == -1) quote.setLow(newPrice);
 
         entityManager.merge(quote);