Author: [email protected]
Date: Mon Aug  8 17:07:49 2011
New Revision: 1297

Log:
[AMDATUCASSANDRA-69] Changes needed for updated OpenSocial 0.2.0 API 

Modified:
   
trunk/amdatu-cassandra/cassandra-gadgetstore/src/main/java/org/amdatu/cassandra/gadgetstore/service/CassandraGadgetStorageProviderImpl.java

Modified: 
trunk/amdatu-cassandra/cassandra-gadgetstore/src/main/java/org/amdatu/cassandra/gadgetstore/service/CassandraGadgetStorageProviderImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-gadgetstore/src/main/java/org/amdatu/cassandra/gadgetstore/service/CassandraGadgetStorageProviderImpl.java
 (original)
+++ 
trunk/amdatu-cassandra/cassandra-gadgetstore/src/main/java/org/amdatu/cassandra/gadgetstore/service/CassandraGadgetStorageProviderImpl.java
 Mon Aug  8 17:07:49 2011
@@ -81,35 +81,41 @@
             m_cassandraLock.writeLock().unlock();
         }
     }
-
+
+    @Override
+    public GadgetDefinition getGadget(String id) throws GadgetStorageException 
{
+        GadgetDefinition gadget = null;
+        String url = m_pm.getValue(CF_GADGET, id, SC_BASIC, C_GADGETURL, 
String.class);
+        String categoryId = m_pm.getValue(CF_GADGET,id, SC_BASIC, C_CATEGORY, 
String.class);
+        GadgetCategory category = getCategory(categoryId);
+        boolean defaultVisible =
+            "true"
+            .equalsIgnoreCase(m_pm.getValue(CF_GADGET, id, SC_BASIC,
+                C_DEFAULTVISIBLE, String.class));
+        if (category != null) {
+            gadget = new GadgetDefinition(url, category, defaultVisible);
+        }
+        else {
+            gadget = new GadgetDefinition(url, GadgetCategory.THIRDPARTY, 
defaultVisible);
+        }
+
+        gadget.setCallbackUrl(m_pm.getValue(CF_GADGET, id, SC_BASIC, 
C_CALLBACKURL, String.class));
+        gadget.setServiceName(m_pm.getValue(CF_GADGET, id, SC_BASIC, 
C_SERVICENAME, String.class));
+        gadget.setConsumerPrivateKey(m_pm.getValue(CF_GADGET, id, SC_BASIC, 
C_CONSUMERKEY,
+            String.class));
+        gadget.setConsumerPublicKey(m_pm.getValue(CF_GADGET, id, SC_BASIC, 
C_CONSUMERSECRET,
+                    String.class));
+        gadget.setKeyType(m_pm.getValue(CF_GADGET, id, SC_BASIC, C_KEYTYPE, 
String.class));
+        return gadget;
+    }
+    
     public GadgetDefinition[] getGadgets() throws GadgetStorageException {
         try {
             m_cassandraLock.readLock().lock();
             List<String> rows = m_pm.getRowKeys(CF_GADGET);
             GadgetDefinition[] gadgets = new GadgetDefinition[rows.size()];
             for (int i = 0; i < rows.size(); i++) {
-                String url = m_pm.getValue(CF_GADGET, rows.get(i), SC_BASIC, 
C_GADGETURL, String.class);
-                String categoryId = m_pm.getValue(CF_GADGET, rows.get(i), 
SC_BASIC, C_CATEGORY, String.class);
-                GadgetCategory category = getCategory(categoryId);
-                boolean defaultVisible =
-                    "true"
-                    .equalsIgnoreCase(m_pm.getValue(CF_GADGET, rows.get(i), 
SC_BASIC,
-                        C_DEFAULTVISIBLE, String.class));
-                if (category != null) {
-                    gadgets[i] = new GadgetDefinition(url, category, 
defaultVisible);
-                }
-                else {
-                    gadgets[i] = new GadgetDefinition(url, 
GadgetCategory.THIRDPARTY, defaultVisible);
-                }
-
-                gadgets[i].setCallbackUrl(m_pm.getValue(CF_GADGET, 
rows.get(i), SC_BASIC, C_CALLBACKURL, String.class));
-                gadgets[i].setServiceName(m_pm.getValue(CF_GADGET, 
rows.get(i), SC_BASIC, C_SERVICENAME, String.class));
-                gadgets[i].setConsumerPrivateKey(m_pm.getValue(CF_GADGET, 
rows.get(i), SC_BASIC, C_CONSUMERKEY,
-                    String.class));
-                gadgets[i]
-                        .setConsumerPublicKey(m_pm.getValue(CF_GADGET, 
rows.get(i), SC_BASIC, C_CONSUMERSECRET,
-                            String.class));
-                gadgets[i].setKeyType(m_pm.getValue(CF_GADGET, rows.get(i), 
SC_BASIC, C_KEYTYPE, String.class));
+                gadgets[i] = getGadget(rows.get(i));
             }
             return orderGadgets(gadgets);
         }
@@ -150,7 +156,9 @@
             m_cassandraLock.readLock().lock();
             if (m_pm.exists(CF_GADGETCATEGORY, categoryId)) {
                 String catName = m_pm.getValue(CF_GADGETCATEGORY, categoryId, 
SC_BASIC, C_NAME, String.class);
-                return new GadgetCategory(categoryId, catName);
+                GadgetCategory category = new GadgetCategory(categoryId, 
catName);
+                category.setGadgetCount(countGadgets(category));
+                return category;
             }
             else {
                 return null;
@@ -171,7 +179,8 @@
                 int i = 0;
                 for (String row : rows) {
                     String catName = m_pm.getValue(CF_GADGETCATEGORY, row, 
SC_BASIC, C_NAME, String.class);
-                    categories[i] = new GadgetCategory(row, catName);
+                    categories[i] = new GadgetCategory(row, catName);
+                    categories[i].setGadgetCount(countGadgets(categories[i]));
                     i++;
                 }
                 return categories;
@@ -179,26 +188,18 @@
             else {
                 return new GadgetCategory[0];
             }
-
         }
         finally {
             m_cassandraLock.readLock().unlock();
         }
     }
 
-    public Map<String, Integer> getCategoryCount() throws 
GadgetStorageException {
-        Map<String, Integer> count = new HashMap<String, Integer>();
+    private int countGadgets(GadgetCategory category) throws 
GadgetStorageException {
+        int count = 0;
         for (String row : m_pm.getRowKeys(CF_GADGET)) {
             String catId = m_pm.getValue(CF_GADGET, row, SC_BASIC, C_CATEGORY, 
String.class);
-            int value = 0;
-            if (count.containsKey(catId)) {
-                value = count.get(catId);
-            }
-            count.put(catId, ++value);
-        }
-        for (GadgetCategory cat : getCategories()) {
-            if (!count.containsKey(cat.getId())) {
-                count.put(cat.getId(), 0);
+            if (category.getId().equals(catId)) {
+                count++;
             }
         }
         return count;
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to