You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by do...@apache.org on 2008/08/26 21:49:39 UTC

svn commit: r689187 - in /incubator/shindig/trunk/java/social-api/src: main/java/org/apache/shindig/social/opensocial/service/ main/java/org/apache/shindig/social/opensocial/spi/ main/java/org/apache/shindig/social/sample/spi/ test/java/org/apache/shin...

Author: doll
Date: Tue Aug 26 12:49:38 2008
New Revision: 689187

URL: http://svn.apache.org/viewvc?rev=689187&view=rev
Log:
0.8.1 change
Filters and sorts can now be any field.. or special opensocial js value... so they are now strings. I added string constants for the opensocial specific ones - topFriends and hasApp. 

Dealing with strings instead of enums isn't as much fun but I didn't see an easy way to give the kind of flexibility that is now needed for sorts and filters.


Modified:
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RequestItem.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/CollectionOptions.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/PersonService.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/PersonHandlerTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/RestfulRequestItemTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/RpcRequestItemTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialServiceTest.java

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RequestItem.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RequestItem.java?rev=689187&r1=689186&r2=689187&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RequestItem.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RequestItem.java Tue Aug 26 12:49:38 2008
@@ -118,11 +118,9 @@
     return count == null ? DEFAULT_COUNT : Integer.valueOf(count);
   }
 
-  public PersonService.SortBy getSortBy() {
+  public String getSortBy() {
     String sortBy = getParameter(SORT_BY);
-    return sortBy == null
-        ? PersonService.SortBy.topFriends
-        : PersonService.SortBy.valueOf(sortBy);
+    return sortBy == null ? PersonService.TOP_FRIENDS_SORT : sortBy;
   }
 
   public PersonService.SortOrder getSortOrder() {
@@ -132,11 +130,8 @@
         : PersonService.SortOrder.valueOf(sortOrder);
   }
 
-  public PersonService.FilterType getFilterBy() {
-    String filterBy = getParameter(FILTER_BY);
-    return filterBy == null
-        ? PersonService.FilterType.all
-        : PersonService.FilterType.valueOf(filterBy);
+  public String getFilterBy() {
+    return getParameter(FILTER_BY);
   }
 
   public PersonService.FilterOperation getFilterOperation() {

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/CollectionOptions.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/CollectionOptions.java?rev=689187&r1=689186&r2=689187&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/CollectionOptions.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/CollectionOptions.java Tue Aug 26 12:49:38 2008
@@ -20,19 +20,23 @@
 import org.apache.commons.lang.StringUtils;
 
 public class CollectionOptions {
-  private PersonService.SortBy sortBy;
+  private String sortBy;
   private PersonService.SortOrder sortOrder;
-  private PersonService.FilterType filter;
+  private String filter;
   private PersonService.FilterOperation filterOperation;
   private String filterValue;
   private int first;
   private int max;
 
-  public PersonService.SortBy getSortBy() {
+  /**
+   * This sortBy can be any field of the object being sorted or the special js sort of topFriends.
+   * @return The field to sort by
+   */
+  public String getSortBy() {
     return sortBy;
   }
 
-  public void setSortBy(PersonService.SortBy sortBy) {
+  public void setSortBy(String sortBy) {
     this.sortBy = sortBy;
   }
 
@@ -44,11 +48,16 @@
     this.sortOrder = sortOrder;
   }
 
-  public PersonService.FilterType getFilter() {
+  /**
+   * This filter can be any field of the object being filtered or the special js filters,
+   * hasApp or topFriends.  
+   * @return The field to filter by
+   */
+  public String getFilter() {
     return filter;
   }
 
-  public void setFilter(PersonService.FilterType filter) {
+  public void setFilter(String filter) {
     this.filter = filter;
   }
 
@@ -92,9 +101,9 @@
     }
 
     CollectionOptions actual = (CollectionOptions) o;
-    return this.sortBy == actual.sortBy
+    return StringUtils.equals(this.sortBy, actual.sortBy)
         && this.sortOrder == actual.sortOrder
-        && this.filter == actual.filter
+        && StringUtils.equals(this.filter, actual.filter)
         && this.filterOperation == actual.filterOperation
         && StringUtils.equals(this.filterValue, actual.filterValue)
         && this.first == actual.first

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/PersonService.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/PersonService.java?rev=689187&r1=689186&r2=689187&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/PersonService.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/PersonService.java Tue Aug 26 12:49:38 2008
@@ -30,18 +30,14 @@
 
 public interface PersonService {
 
-  public enum SortBy {
-    topFriends, name
-  }
+  public static String TOP_FRIENDS_SORT = "topFriends";
+  public static String TOP_FRIENDS_FILTER = "topFriends";
+  public static String HAS_APP_FILTER = "hasApp";
 
   public enum SortOrder {
     ascending, descending
   }
 
-  public enum FilterType {
-    all, hasApp, topFriends
-  }
-
   public enum FilterOperation {
     contains, equals, startsWith, present
   }

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java?rev=689187&r1=689186&r2=689187&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java Tue Aug 26 12:49:38 2008
@@ -255,7 +255,7 @@
       }
 
       // We can pretend that by default the people are in top friends order
-      if (options.getSortBy().equals(SortBy.name)) {
+      if (options.getSortBy().equals(Person.Field.NAME.toString())) {
         Collections.sort(result, NAME_COMPARATOR);
       }
 

Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/PersonHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/PersonHandlerTest.java?rev=689187&r1=689186&r2=689187&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/PersonHandlerTest.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/PersonHandlerTest.java Tue Aug 26 12:49:38 2008
@@ -52,9 +52,9 @@
   private static CollectionOptions DEFAULT_OPTIONS = new CollectionOptions();
 
   static {
-    DEFAULT_OPTIONS.setSortBy(PersonService.SortBy.topFriends);
+    DEFAULT_OPTIONS.setSortBy(PersonService.TOP_FRIENDS_SORT);
     DEFAULT_OPTIONS.setSortOrder(PersonService.SortOrder.ascending);
-    DEFAULT_OPTIONS.setFilter(PersonService.FilterType.all);
+    DEFAULT_OPTIONS.setFilter(null);
     DEFAULT_OPTIONS.setFilterOperation(PersonService.FilterOperation.contains);
     DEFAULT_OPTIONS.setFilterValue("");
     DEFAULT_OPTIONS.setFirst(0);
@@ -132,18 +132,18 @@
 
   public void testHandleGetFriendsWithParams() throws Exception {
     CollectionOptions options = new CollectionOptions();
-    options.setSortBy(PersonService.SortBy.name);
+    options.setSortBy(Person.Field.NAME.toString());
     options.setSortOrder(PersonService.SortOrder.descending);
-    options.setFilter(PersonService.FilterType.topFriends);
+    options.setFilter(PersonService.TOP_FRIENDS_FILTER);
     options.setFilterOperation(PersonService.FilterOperation.present);
     options.setFilterValue("cassie");
     options.setFirst(5);
     options.setMax(10);
 
     Map<String, String> params = Maps.newHashMap();
-    params.put("sortBy", options.getSortBy().toString());
+    params.put("sortBy", options.getSortBy());
     params.put("sortOrder", options.getSortOrder().toString());
-    params.put("filterBy", options.getFilter().toString());
+    params.put("filterBy", options.getFilter());
     params.put("filterOp", options.getFilterOperation().toString());
     params.put("filterValue", options.getFilterValue());
     params.put("startIndex", "5");

Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/RestfulRequestItemTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/RestfulRequestItemTest.java?rev=689187&r1=689186&r2=689187&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/RestfulRequestItemTest.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/RestfulRequestItemTest.java Tue Aug 26 12:49:38 2008
@@ -103,14 +103,6 @@
     assertEquals(5, request.getCount());
   }
 
-  public void testSortBy() throws Exception {
-    request.setParameter("sortBy", null);
-    assertEquals(PersonService.SortBy.topFriends, request.getSortBy());
-
-    request.setParameter("sortBy", "name");
-    assertEquals(PersonService.SortBy.name, request.getSortBy());
-  }
-
   public void testSortOrder() throws Exception {
     request.setParameter("sortOrder", null);
     assertEquals(PersonService.SortOrder.ascending, request.getSortOrder());
@@ -119,14 +111,6 @@
     assertEquals(PersonService.SortOrder.descending, request.getSortOrder());
   }
 
-  public void testFilterBy() throws Exception {
-    request.setParameter("filterBy", null);
-    assertEquals(PersonService.FilterType.all, request.getFilterBy());
-
-    request.setParameter("filterBy", "hasApp");
-    assertEquals(PersonService.FilterType.hasApp, request.getFilterBy());
-  }
-
   public void testFields() throws Exception {
     request.setListParameter("fields", Collections.<String>emptyList());
     assertEquals(Sets.<String>newHashSet(), request.getFields());

Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/RpcRequestItemTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/RpcRequestItemTest.java?rev=689187&r1=689186&r2=689187&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/RpcRequestItemTest.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/RpcRequestItemTest.java Tue Aug 26 12:49:38 2008
@@ -100,10 +100,10 @@
 
   public void testSortBy() throws Exception {
     request.setParameter("sortBy", null);
-    assertEquals(PersonService.SortBy.topFriends, request.getSortBy());
+    assertEquals("topFriends", request.getSortBy());
 
     request.setParameter("sortBy", "name");
-    assertEquals(PersonService.SortBy.name, request.getSortBy());
+    assertEquals("name", request.getSortBy());
   }
 
   public void testSortOrder() throws Exception {
@@ -116,10 +116,10 @@
 
   public void testFilterBy() throws Exception {
     request.setParameter("filterBy", null);
-    assertEquals(PersonService.FilterType.all, request.getFilterBy());
+    assertEquals(null, request.getFilterBy());
 
     request.setParameter("filterBy", "hasApp");
-    assertEquals(PersonService.FilterType.hasApp, request.getFilterBy());
+    assertEquals("hasApp", request.getFilterBy());
   }
 
   public void testFilterOperation() throws Exception {

Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialServiceTest.java?rev=689187&r1=689186&r2=689187&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialServiceTest.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialServiceTest.java Tue Aug 26 12:49:38 2008
@@ -80,9 +80,9 @@
 
   public void testGetExpectedFriends() throws Exception {
     CollectionOptions options = new CollectionOptions();
-    options.setSortBy(PersonService.SortBy.topFriends);
+    options.setSortBy(PersonService.TOP_FRIENDS_SORT);
     options.setSortOrder(PersonService.SortOrder.ascending);
-    options.setFilter(PersonService.FilterType.all);
+    options.setFilter(null);
     options.setFilterOperation(PersonService.FilterOperation.contains);
     options.setFilterValue("");
     options.setFirst(0);
@@ -100,9 +100,9 @@
 
   public void testGetExpectedUsersForPlural() throws Exception {
     CollectionOptions options = new CollectionOptions();
-    options.setSortBy(PersonService.SortBy.topFriends);
+    options.setSortBy(PersonService.TOP_FRIENDS_SORT);
     options.setSortOrder(PersonService.SortOrder.ascending);
-    options.setFilter(PersonService.FilterType.all);
+    options.setFilter(null);
     options.setFilterOperation(PersonService.FilterOperation.contains);
     options.setFilterValue("");
     options.setFirst(0);