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/25 18:09:40 UTC
svn commit: r688771 - 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: Mon Aug 25 09:09:40 2008
New Revision: 688771
URL: http://svn.apache.org/viewvc?rev=688771&view=rev
Log:
0.8.1 change
Added filterOperation and filterValue as two new parameters for the personService.
The personService really needs a composable object because getPeople has too many parameters - that will come in a later refactoring though.
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/PersonHandler.java
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/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/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/PersonHandler.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/PersonHandler.java?rev=688771&r1=688770&r2=688771&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/PersonHandler.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/PersonHandler.java Mon Aug 25 09:09:40 2008
@@ -79,7 +79,8 @@
return personService.getPerson(userIds.iterator().next(), fields, request.getToken());
} else {
return personService.getPeople(userIds, groupId, request.getSortBy(),
- request.getSortOrder(), request.getFilterBy(), request.getStartIndex(),
+ request.getSortOrder(), request.getFilterBy(), request.getFilterOperation(),
+ request.getFilterValue(), request.getStartIndex(),
request.getCount(), fields, request.getToken());
}
} else if (optionalPersonId.size() == 1) {
@@ -95,13 +96,15 @@
// Every other case is a collection response of optional person ids
return personService.getPeople(personIds, new GroupId(GroupId.Type.self, null),
request.getSortBy(), request.getSortOrder(), request.getFilterBy(),
- request.getStartIndex(), request.getCount(), fields, request.getToken());
+ request.getFilterOperation(), request.getFilterValue(), request.getStartIndex(),
+ request.getCount(), fields, request.getToken());
}
}
// Every other case is a collection response.
return personService.getPeople(userIds, groupId, request.getSortBy(),
- request.getSortOrder(), request.getFilterBy(), request.getStartIndex(), request.getCount(),
+ request.getSortOrder(), request.getFilterBy(), request.getFilterOperation(),
+ request.getFilterValue(), request.getStartIndex(), request.getCount(),
fields, request.getToken());
}
}
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=688771&r1=688770&r2=688771&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 Mon Aug 25 09:09:40 2008
@@ -48,6 +48,8 @@
public static final String SORT_ORDER = "sortOrder";
public static final String FILTER_BY = "filterBy";
+ public static final String FILTER_OPERATION = "filterOp";
+ public static final String FILTER_VALUE = "filterValue";
public static final String FIELDS = "fields";
@@ -66,7 +68,8 @@
private final String service;
- public RequestItem(String service, String operation, SecurityToken token, BeanConverter converter) {
+ public RequestItem(String service, String operation, SecurityToken token,
+ BeanConverter converter) {
this.service = service;
this.operation = operation;
this.token = token;
@@ -136,6 +139,18 @@
: PersonService.FilterType.valueOf(filterBy);
}
+ public PersonService.FilterOperation getFilterOperation() {
+ String filterOp = getParameter(FILTER_OPERATION);
+ return filterOp == null
+ ? PersonService.FilterOperation.contains
+ : PersonService.FilterOperation.valueOf(filterOp);
+ }
+
+ public String getFilterValue() {
+ String filterValue = getParameter(FILTER_VALUE);
+ return filterValue == null ? "" : filterValue;
+ }
+
public Set<String> getFields() {
return getFields(Sets.<String>newHashSet());
}
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=688771&r1=688770&r2=688771&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 Mon Aug 25 09:09:40 2008
@@ -43,6 +43,10 @@
all, hasApp, topFriends
}
+ public enum FilterOperation {
+ contains, equals, startsWith, present
+ }
+
/**
* Returns a list of people that correspond to the passed in person ids.
*
@@ -51,13 +55,17 @@
* @param sortBy How to sort the people
* @param sortOrder The direction of the sort
* @param filter How the people should be filtered.
+ * @param filterOperation The operation to filter with
+ * @param filterValue The value to filter with.
* @param first The index of the first person to fetch.
* @param max The max number of people to fetch.
* @param fields The profile details to fetch. Empty set implies all
* @param token The gadget token @return a list of people.
+ * TODO(doll): This method is getting way too long. We need to pass a more complex object instead.
*/
Future<ResponseItem<RestfulCollection<Person>>> getPeople(Set<UserId> userIds, GroupId groupId,
- SortBy sortBy, SortOrder sortOrder, FilterType filter, int first, int max,
+ SortBy sortBy, SortOrder sortOrder, FilterType filter, FilterOperation filterOperation,
+ String filterValue, int first, int max,
Set<String> fields, SecurityToken token);
/**
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=688771&r1=688770&r2=688771&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 Mon Aug 25 09:09:40 2008
@@ -239,7 +239,8 @@
}
public Future<ResponseItem<RestfulCollection<Person>>> getPeople(Set<UserId> userIds,
- GroupId groupId, SortBy sortBy, SortOrder sortOrder, FilterType filter, int first,
+ GroupId groupId, SortBy sortBy, SortOrder sortOrder, FilterType filter,
+ FilterOperation filterOperation, String filterValue, int first,
int max, Set<String> fields, SecurityToken token) {
List<Person> result = Lists.newArrayList();
try {
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=688771&r1=688770&r2=688771&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 Mon Aug 25 09:09:40 2008
@@ -98,7 +98,8 @@
new GroupId(GroupId.Type.all, null),
PersonService.SortBy.topFriends,
PersonService.SortOrder.ascending,
- PersonService.FilterType.all, 0, 20,
+ PersonService.FilterType.all,
+ PersonService.FilterOperation.contains, "", 0, 20,
DEFAULT_FIELDS,
token))
.andReturn(ImmediateFuture.newInstance(data));
@@ -118,7 +119,9 @@
new GroupId(GroupId.Type.friends, null),
PersonService.SortBy.topFriends,
PersonService.SortOrder.ascending,
- PersonService.FilterType.all, 0, 20,
+ PersonService.FilterType.all,
+ PersonService.FilterOperation.contains,
+ "", 0, 20,
DEFAULT_FIELDS,
token))
.andReturn(ImmediateFuture.newInstance(data));
@@ -132,11 +135,15 @@
PersonService.SortBy sortBy = PersonService.SortBy.name;
PersonService.SortOrder sortOrder = PersonService.SortOrder.descending;
PersonService.FilterType filter = PersonService.FilterType.topFriends;
+ PersonService.FilterOperation filterOp = PersonService.FilterOperation.present;
+ String filterValue = "cassie";
Map<String, String> params = Maps.newHashMap();
params.put("sortBy", sortBy.toString());
params.put("sortOrder", sortOrder.toString());
params.put("filterBy", filter.toString());
+ params.put("filterOp", filterOp.toString());
+ params.put("filterValue", filterValue);
params.put("startIndex", "5");
params.put("count", "10");
params.put("fields", "money,fame,fortune");
@@ -148,7 +155,8 @@
EasyMock.expect(personService.getPeople(
JOHN_DOE,
new GroupId(GroupId.Type.friends, null), sortBy, sortOrder,
- filter, 5, 10, Sets.newLinkedHashSet("money", "fame", "fortune"), token))
+ filter, filterOp, filterValue, 5, 10,
+ Sets.newLinkedHashSet("money", "fame", "fortune"), token))
.andReturn(ImmediateFuture.newInstance(data));
replay();
@@ -192,7 +200,9 @@
new GroupId(GroupId.Type.self, null),
PersonService.SortBy.topFriends,
PersonService.SortOrder.ascending,
- PersonService.FilterType.all, 0, 20,
+ PersonService.FilterType.all,
+ PersonService.FilterOperation.contains,
+ "", 0, 20,
DEFAULT_FIELDS,
token)).andReturn(ImmediateFuture.newInstance(data));
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=688771&r1=688770&r2=688771&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 Mon Aug 25 09:09:40 2008
@@ -122,6 +122,22 @@
assertEquals(PersonService.FilterType.hasApp, request.getFilterBy());
}
+ public void testFilterOperation() throws Exception {
+ request.setParameter("filterOp", null);
+ assertEquals(PersonService.FilterOperation.contains, request.getFilterOperation());
+
+ request.setParameter("filterOp", "equals");
+ assertEquals(PersonService.FilterOperation.equals, request.getFilterOperation());
+ }
+
+ public void testFilterValue() throws Exception {
+ request.setParameter("filterValue", null);
+ assertEquals("", request.getFilterValue());
+
+ request.setParameter("filterValue", "cassie");
+ assertEquals("cassie", request.getFilterValue());
+ }
+
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/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=688771&r1=688770&r2=688771&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 Mon Aug 25 09:09:40 2008
@@ -88,7 +88,7 @@
ResponseItem<RestfulCollection<Person>> responseItem = db.getPeople(
Sets.newHashSet(CANON_USER), new GroupId(GroupId.Type.friends, null),
PersonService.SortBy.topFriends, PersonService.SortOrder.ascending,
- PersonService.FilterType.all, 0,
+ PersonService.FilterType.all, PersonService.FilterOperation.contains, "", 0,
Integer.MAX_VALUE, Collections.<String>emptySet(), token).get();
assertNotNull(responseItem.getResponse());
assertEquals(responseItem.getResponse().getTotalResults(), 4);
@@ -101,7 +101,7 @@
ResponseItem<RestfulCollection<Person>> responseItem = db.getPeople(
Sets.newLinkedHashSet(JOHN_DOE, JANE_DOE), new GroupId(GroupId.Type.friends, null),
PersonService.SortBy.topFriends, PersonService.SortOrder.ascending,
- PersonService.FilterType.all, 0,
+ PersonService.FilterType.all, PersonService.FilterOperation.contains, "", 0,
Integer.MAX_VALUE, Collections.<String>emptySet(), token).get();
assertNotNull(responseItem.getResponse());
assertEquals(responseItem.getResponse().getTotalResults(), 4);