Author: jsdelfino
Date: Sun Jan 13 00:34:52 2008
New Revision: 611547

URL: http://svn.apache.org/viewvc?rev=611547&view=rev
Log:
Changed the data collection getAll method to return an array of Entry objects 
instead of a Map as a Map can't be easily described using WSDL and XSD and 
won't work with Web Service interactions.

Modified:
    incubator/tuscany/java/sca/tutorial/assets/services/ShoppingCartImpl.java
    
incubator/tuscany/java/sca/tutorial/assets/services/db/ShoppingCartTableImpl.java

Modified: 
incubator/tuscany/java/sca/tutorial/assets/services/ShoppingCartImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tutorial/assets/services/ShoppingCartImpl.java?rev=611547&r1=611546&r2=611547&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tutorial/assets/services/ShoppingCartImpl.java 
(original)
+++ incubator/tuscany/java/sca/tutorial/assets/services/ShoppingCartImpl.java 
Sun Jan 13 00:34:52 2008
@@ -23,6 +23,7 @@
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.tuscany.sca.implementation.data.collection.Entry;
 import org.apache.tuscany.sca.implementation.data.collection.NotFoundException;
 import org.osoa.sca.annotations.Init;
 import org.osoa.sca.annotations.Scope;
@@ -30,14 +31,20 @@
 @Scope("COMPOSITE")
 public class ShoppingCartImpl implements Cart, Total {
     
-    private Map<String, Item> cart = new HashMap<String, Item>();
+    private Map<String, Item> cart;
     
     @Init
     protected void init() {
+        cart = new HashMap<String, Item>();
     }
 
-    public Map<String, Item> getAll() {
-        return cart;
+    public Entry<String, Item>[] getAll() {
+        Entry<String, Item>[] entries = new Entry[cart.size()];
+        int i = 0;
+        for (Map.Entry<String, Item> e: cart.entrySet()) {
+            entries[i++] = new Entry<String, Item>(e.getKey(), e.getValue());
+        }
+        return entries;
     }
 
     public Item get(String key) throws NotFoundException {
@@ -72,7 +79,7 @@
         }
     }
 
-    public Map<String, Item> query(String queryString) {
+    public Entry<String, Item>[] query(String queryString) {
         // Implement queries later
         return null;
     }

Modified: 
incubator/tuscany/java/sca/tutorial/assets/services/db/ShoppingCartTableImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tutorial/assets/services/db/ShoppingCartTableImpl.java?rev=611547&r1=611546&r2=611547&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/tutorial/assets/services/db/ShoppingCartTableImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/tutorial/assets/services/db/ShoppingCartTableImpl.java
 Sun Jan 13 00:34:52 2008
@@ -24,10 +24,11 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.UUID;
 
+import org.apache.tuscany.sca.implementation.data.collection.Entry;
 import org.apache.tuscany.sca.implementation.data.collection.NotFoundException;
 import org.osoa.sca.ServiceRuntimeException;
 import org.osoa.sca.annotations.Init;
@@ -50,15 +51,16 @@
         connection = DriverManager.getConnection("jdbc:derby:target/" + 
database, "", "");
     }
 
-    public Map<String, Item> getAll() {
+    public Entry<String, Item>[] getAll() {
         try {
             Statement statement = connection.createStatement();
             ResultSet results = statement.executeQuery("select * from Cart");
-            Map<String, Item> items = new HashMap<String, Item>();
+            List<Entry<String, Item>> entries = new ArrayList<Entry<String, 
Item>>();
             while (results.next()) {
-                items.put(results.getString("id"), new 
Item(results.getString("name"), results.getString("price")));
+                Item item = new Item(results.getString("name"), 
results.getString("price"));
+                entries.add(new Entry<String, Item>(results.getString("id"), 
item));
             }
-            return items;
+            return entries.toArray(new Entry[entries.size()]);
         } catch (SQLException e) {
             throw new ServiceRuntimeException(e);
         }
@@ -123,29 +125,31 @@
         }
     }
 
-    public Map<String, Item> query(String queryString) {
+    public Entry<String, Item>[] query(String queryString) {
         try {
             Statement statement = connection.createStatement();
             ResultSet results = statement.executeQuery("select * from Cart 
where " + queryString);
-            Map<String, Item> items = new HashMap<String, Item>();
+            List<Entry<String, Item>> entries = new ArrayList<Entry<String, 
Item>>();
             while (results.next()) {
-                items.put(results.getString("id"), new 
Item(results.getString("name"), results.getString("price")));
+                Item item = new Item(results.getString("name"), 
results.getString("price"));
+                entries.add(new Entry<String, Item>(results.getString("id"), 
item));
             }
-            return items;
+            return entries.toArray(new Entry[entries.size()]);
         } catch (SQLException e) {
             throw new ServiceRuntimeException(e);
         }
     }
     
     public String getTotal() {
-        Map<String, Item> cart = getAll(); 
+        Entry<String, Item>[] entries = getAll(); 
         double total = 0;
         String currencySymbol = "";
-        if (!cart.isEmpty()) {
-            Item item = cart.values().iterator().next();
+        if (entries.length > 0) {
+            Item item = entries[0].getData();
             currencySymbol = item.getPrice().substring(0, 1);
         }
-        for (Item item : cart.values()) {
+        for (Entry<String, Item> entry : entries) {
+            Item item = entry.getData();
             total += Double.valueOf(item.getPrice().substring(1));
         }
         return currencySymbol + total;



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to