Author: ludovic
Date: 2008-02-11 01:04:58 +0100 (Mon, 11 Feb 2008)
New Revision: 7481

Modified:
   
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/api/ActivityStream.java
   
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityEventImpl.java
   
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
   
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/plugin/ActivityStreamPluginApi.java
Log:
CURRIKI-1569 Activity Stream Core storage

Modified: 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/api/ActivityStream.java
===================================================================
--- 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/api/ActivityStream.java
   2008-02-10 23:24:49 UTC (rev 7480)
+++ 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/api/ActivityStream.java
   2008-02-11 00:04:58 UTC (rev 7481)
@@ -62,9 +62,15 @@
     void addDocumentActivityEvent(String streamName, XWikiDocument doc, String 
type, String title,
         XWikiContext context) throws ActivityStreamException;
 
+    void addDocumentActivityEvent(String streamName, XWikiDocument doc, String 
type, int priority, String title,
+        XWikiContext context) throws ActivityStreamException;
+
     void addDocumentActivityEvent(String streamName, XWikiDocument doc, String 
type, String title, List params,
         XWikiContext context) throws ActivityStreamException;
 
+    void addDocumentActivityEvent(String streamName, XWikiDocument doc, String 
type, int priority, String title, List params,
+        XWikiContext context) throws ActivityStreamException;
+
     List searchEvents(String hql, boolean filter, int nb, int start, 
XWikiContext context)
         throws ActivityStreamException;
 

Modified: 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityEventImpl.java
===================================================================
--- 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityEventImpl.java
       2008-02-10 23:24:49 UTC (rev 7480)
+++ 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityEventImpl.java
       2008-02-11 00:04:58 UTC (rev 7481)
@@ -21,6 +21,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.ArrayList;
 
 import org.xwiki.plugin.activitystream.api.ActivityEvent;
 
@@ -68,12 +69,12 @@
 
     public String getDisplayTitle(XWikiContext context)
     {
-        return context.getWiki().parseMessage(title, context);
+        return context.getMessageTool().get(title, getParams());
     }
 
     public String getDisplayBody(XWikiContext context)
     {
-        return context.getWiki().parseMessage(body, context);
+        return context.getMessageTool().get(body, getParams());
     }
 
     public String getDisplayDate(XWikiContext context)
@@ -106,6 +107,16 @@
         }
     }
 
+    public List getParams() {
+        List params = new ArrayList();
+        params.add(getParam1());
+        params.add(getParam2());
+        params.add(getParam3());
+        params.add(getParam4());
+        params.add(getParam5());
+        return params;
+    }
+
     public String getEventId()
     {
         return eventId;

Modified: 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
===================================================================
--- 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
      2008-02-10 23:24:49 UTC (rev 7480)
+++ 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
      2008-02-11 00:04:58 UTC (rev 7481)
@@ -150,12 +150,23 @@
     public void addDocumentActivityEvent(String streamName, XWikiDocument doc, 
String type, String title,
                                          XWikiContext context) throws 
ActivityStreamException
     {
-        addDocumentActivityEvent(streamName, doc, type, title, null, context);
+        addDocumentActivityEvent(streamName, doc, type, 
ActivityEventPriority.ACTION, title, null, context);
     }
 
+    public void addDocumentActivityEvent(String streamName, XWikiDocument doc, 
String type, int priority, String title,
+                                         XWikiContext context) throws 
ActivityStreamException {
+        addDocumentActivityEvent(streamName, doc, type, priority, title, null, 
context);
+    }
+
     public void addDocumentActivityEvent(String streamName, XWikiDocument doc, 
String type, String title, List params,
                                          XWikiContext context) throws 
ActivityStreamException
     {
+        addDocumentActivityEvent(streamName, doc, type, 
ActivityEventPriority.ACTION, title, params, context);
+    }
+
+    public void addDocumentActivityEvent(String streamName, XWikiDocument doc, 
String type, int priority, String title, List params,
+                                         XWikiContext context) throws 
ActivityStreamException
+    {
         ActivityEvent event = newActivityEvent();
         event.setStream(streamName);
         event.setPage(doc.getFullName());
@@ -163,7 +174,7 @@
             event.setWiki(doc.getDatabase());
         }
         event.setDate(doc.getDate());
-        event.setPriority(ActivityEventPriority.ACTION);
+        event.setPriority(priority);
         event.setType(type);
         event.setTitle(title);
         event.setBody(title);
@@ -174,17 +185,14 @@
     public List searchEvents(String hql, boolean filter, int nb, int start, 
XWikiContext context)
             throws ActivityStreamException
     {
-        String searchHql = "select act.* from ActivityEvent as act " + hql;
-        String filterQuery =
-                ", ActivityEvent act2 where act.eventId=act2.eventId and 
act.priority=max(act2.priority)";
+        String searchHql;
+
         if (filter) {
-            searchHql += filterQuery;
+            searchHql = "select act from ActivityEventImpl as act, 
ActivityEventImpl as act2 where act.eventId=act2.eventId and " + hql + " group 
by act.requestId having (act.priority)=max(act2.priority) order by act.date 
desc";
+        } else {
+            searchHql = "select act from ActivityEventImpl as act where " + 
hql + " order by act.date desc";
         }
 
-        if (!hql.contains("order by")) {
-            searchHql += " order by act.date desc";
-        }
-
         try {
             return context.getWiki().search(searchHql, nb, start, context);
         } catch (XWikiException e) {
@@ -201,32 +209,32 @@
     public List getEventsForSpace(String space, boolean filter, int nb, int 
start,
                                   XWikiContext context) throws 
ActivityStreamException
     {
-        return searchEvents("where act.space='" + space + "'", filter, nb, 
start, context);
+        return searchEvents("act.space='" + space + "'", filter, nb, start, 
context);
     }
 
     public List getEventsForUser(String user, boolean filter, int nb, int 
start,
                                  XWikiContext context) throws 
ActivityStreamException
     {
-        return searchEvents("where act.user='" + user + "'", filter, nb, 
start, context);
+        return searchEvents("act.user='" + user + "'", filter, nb, start, 
context);
     }
 
     public List getEvents(String stream, boolean filter, int nb, int start, 
XWikiContext context)
             throws ActivityStreamException
     {
-        return searchEvents("where act.stream='" + stream + "'", filter, nb, 
start, context);
+        return searchEvents("act.stream='" + stream + "'", filter, nb, start, 
context);
     }
 
     public List getEventsForSpace(String stream, String space, boolean filter, 
int nb, int start,
                                   XWikiContext context) throws 
ActivityStreamException
     {
-        return searchEvents("where act.space='" + space + "' and act.stream='" 
+ stream + "'",
+        return searchEvents("act.space='" + space + "' and act.stream='" + 
stream + "'",
                 filter, nb, start, context);
     }
 
     public List getEventsForUser(String stream, String user, boolean filter, 
int nb, int start,
                                  XWikiContext context) throws 
ActivityStreamException
     {
-        return searchEvents("where act.user='" + user + "' and act.stream='" + 
stream + "'",
+        return searchEvents("act.user='" + user + "' and act.stream='" + 
stream + "'",
                 filter, nb, start, context);
     }
 
@@ -274,7 +282,7 @@
     }
 
     /*
-    public FeedEntry getFeedEntry(ActivityEvent event, XWikiContext context) {
+    public SyndEntry getFeedEntry(ActivityEvent event, XWikiContext context) {
         return null;
     } */
 

Modified: 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/plugin/ActivityStreamPluginApi.java
===================================================================
--- 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/plugin/ActivityStreamPluginApi.java
       2008-02-10 23:24:49 UTC (rev 7480)
+++ 
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/plugin/ActivityStreamPluginApi.java
       2008-02-11 00:04:58 UTC (rev 7481)
@@ -20,16 +20,16 @@
 package org.xwiki.plugin.activitystream.plugin;
 
 import org.xwiki.plugin.activitystream.api.ActivityStream;
-import org.xwiki.plugin.activitystream.api.ActivityEvent;
 import org.xwiki.plugin.activitystream.api.ActivityStreamException;
 
 import com.xpn.xwiki.XWikiContext;
 import com.xpn.xwiki.api.Document;
-import com.xpn.xwiki.doc.XWikiDocument;
 import com.xpn.xwiki.plugin.PluginApi;
 import com.xpn.xwiki.plugin.XWikiPluginInterface;
 
 import java.util.List;
+import java.util.ArrayList;
+import java.util.Iterator;
 
 /**
  * API for [EMAIL PROTECTED] ActivityStreamPlugin}
@@ -52,7 +52,7 @@
         return ((ActivityStreamPlugin) getPlugin()).getActivityStream();
     }
 
-    public void addActivityEvent(ActivityEvent event) throws 
ActivityStreamException {
+    public void 
addActivityEvent(org.xwiki.plugin.activitystream.api.ActivityEvent event) 
throws ActivityStreamException {
          if (hasProgrammingRights()) {
              getActivityStream().addActivityEvent(event, context);
          }
@@ -70,6 +70,12 @@
         }
     }
 
+    public void addDocumentActivityEvent(String streamName, Document doc, 
String type, int priority, String title) throws ActivityStreamException {
+        if (hasProgrammingRights()) {
+            getActivityStream().addDocumentActivityEvent(streamName, 
doc.getDocument(), type, priority, title, context);
+        }
+    }
+
     public void addActivityEvent(String streamName, String type, String title, 
List params) throws ActivityStreamException {
         if (hasProgrammingRights()) {
             getActivityStream().addActivityEvent(streamName, type, title, 
params, context);
@@ -82,9 +88,15 @@
         }
     }
 
+    public void addDocumentActivityEvent(String streamName, Document doc, 
String type, int priority, String title, List params) throws 
ActivityStreamException {
+        if (hasProgrammingRights()) {
+            getActivityStream().addDocumentActivityEvent(streamName, 
doc.getDocument(), type, priority, title, params, context);
+        }
+    }
+
     public List searchEvents(String hql, boolean filter, int nb, int start) 
throws ActivityStreamException {
         if (hasProgrammingRights()) {
-            return getActivityStream().searchEvents(hql, filter, nb, start, 
context);
+            return wrapEvents(getActivityStream().searchEvents(hql, filter, 
nb, start, context));
         } else {
             return null;
         }
@@ -92,7 +104,7 @@
 
     public List getEvents(boolean filter, int nb, int start) throws 
ActivityStreamException {
         if (hasProgrammingRights()) {
-            return getActivityStream().getEvents(filter, nb, start, context);
+            return wrapEvents(getActivityStream().getEvents(filter, nb, start, 
context));
         } else {
             return null;
         }
@@ -100,7 +112,7 @@
 
     public List getEventsForSpace(String space, boolean filter, int nb, int 
start) throws ActivityStreamException {
         if (hasProgrammingRights()) {
-            return getActivityStream().getEventsForSpace(space, filter, nb, 
start, context);
+            return wrapEvents(getActivityStream().getEventsForSpace(space, 
filter, nb, start, context));
         } else {
             return null;
         }
@@ -108,7 +120,7 @@
 
     public List getEventsForUser(String user, boolean filter, int nb, int 
start) throws ActivityStreamException {
         if (hasProgrammingRights()) {
-            return getActivityStream().getEventsForUser(user, filter, nb, 
start, context);
+            return wrapEvents(getActivityStream().getEventsForUser(user, 
filter, nb, start, context));
         } else {
             return null;
         }
@@ -116,7 +128,7 @@
 
     public List getEvents(String streamName, boolean filter, int nb, int 
start) throws ActivityStreamException {
         if (hasProgrammingRights()) {
-            return getActivityStream().getEvents(streamName, filter, nb, 
start, context);
+            return wrapEvents(getActivityStream().getEvents(streamName, 
filter, nb, start, context));
         } else {
             return null;
         }
@@ -124,7 +136,7 @@
 
     public List getEventsForSpace(String streamName, String space, boolean 
filter, int nb, int start) throws ActivityStreamException {
         if (hasProgrammingRights()) {
-            return getActivityStream().getEventsForSpace(streamName, space, 
filter, nb, start, context);
+            return 
wrapEvents(getActivityStream().getEventsForSpace(streamName, space, filter, nb, 
start, context));
         } else {
             return null;
         }
@@ -132,10 +144,22 @@
 
     public List getEventsForUser(String streamName, String user, boolean 
filter, int nb, int start) throws ActivityStreamException {
         if (hasProgrammingRights()) {
-            return getActivityStream().getEventsForUser(streamName, user, 
filter, nb, start, context);
+            return wrapEvents(getActivityStream().getEventsForUser(streamName, 
user, filter, nb, start, context));
         } else {
             return null;
         }
     }
-    
+
+    protected List wrapEvents(List events) {
+        List result = new ArrayList();
+        if (events != null) {
+            for (Iterator iter = events.iterator(); iter.hasNext();) {
+                Object obj = iter.next();
+                org.xwiki.plugin.activitystream.api.ActivityEvent event = 
(org.xwiki.plugin.activitystream.api.ActivityEvent) obj;
+                org.xwiki.plugin.activitystream.plugin.ActivityEvent 
wrappedEvent = new org.xwiki.plugin.activitystream.plugin.ActivityEvent(event, 
getXWikiContext());
+                result.add(wrappedEvent);
+            }
+        }
+        return result;
+    }
 }

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to