You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by rb...@apache.org on 2012/08/07 23:53:23 UTC
svn commit: r1370555 - in /shindig/trunk/java:
common/src/main/java/org/apache/shindig/protocol/
common/src/main/java/org/apache/shindig/protocol/conversion/
common/src/test/java/org/apache/shindig/protocol/
social-api/src/main/java/org/apache/shindig/...
Author: rbaxter85
Date: Tue Aug 7 21:53:23 2012
New Revision: 1370555
URL: http://svn.apache.org/viewvc?rev=1370555&view=rev
Log:
SHINDIG-1779
Committed For Erik Bi
Make RestfulCollection object to be backed by a map with the put and get methods exposed
Modified:
shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java
shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanXStreamConverter.java
shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/RestfulCollectionTest.java
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/atom/AtomFeed.java
Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java?rev=1370555&r1=1370554&r2=1370555&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/RestfulCollection.java Tue Aug 7 21:53:23 2012
@@ -18,12 +18,13 @@
*/
package org.apache.shindig.protocol;
+import java.util.HashMap;
import java.util.List;
/**
* Data structure representing a Rest response.
*/
-public class RestfulCollection<T> {
+public class RestfulCollection<T> extends HashMap<String, Object>{
private List<T> list;
private int startIndex;
private int totalResults;
@@ -45,6 +46,9 @@ public class RestfulCollection<T> {
this.filtered=true;
this.sorted=true;
this.updatedSince=true;
+ put("filtered", true);
+ put("sorted", true);
+ put("updatedSince", true);
}
/**
@@ -62,8 +66,13 @@ public class RestfulCollection<T> {
this.startIndex = startIndex;
this.totalResults = totalResults;
this.itemsPerPage = Math.min(itemsPerPage, totalResults);
+ put("list", list);
+ put("startIndex", startIndex);
+ put("totalResults", totalResults);
+ put("itemsPerPage", this.itemsPerPage);
}
+
/**
* Helper constructor for un-paged collection,
* Use {@link #RestfulCollection(java.util.List, int, int, int)} in paginated context
@@ -78,6 +87,7 @@ public class RestfulCollection<T> {
public void setList(List<T> list) {
this.list = list;
+ put("list", list);
}
public int getStartIndex() {
@@ -86,6 +96,7 @@ public class RestfulCollection<T> {
public void setStartIndex(int startIndex) {
this.startIndex = startIndex;
+ put("startIndex", startIndex);
}
public int getTotalResults() {
@@ -94,6 +105,7 @@ public class RestfulCollection<T> {
public void setItemsPerPage(int itemsPerPage) {
this.itemsPerPage = itemsPerPage;
+ put("itemsPerPage", itemsPerPage);
}
public int getItemsPerPage() {
@@ -102,6 +114,7 @@ public class RestfulCollection<T> {
public void setTotalResults(int totalResults) {
this.totalResults = totalResults;
+ put("totalResults", totalResults);
}
public boolean isFiltered() {
@@ -110,6 +123,7 @@ public class RestfulCollection<T> {
public void setFiltered(boolean filtered) {
this.filtered = filtered;
+ put("filtered", filtered);
}
public boolean isSorted() {
@@ -118,6 +132,7 @@ public class RestfulCollection<T> {
public void setSorted(boolean sorted) {
this.sorted = sorted;
+ put("sorted", sorted);
}
public boolean isUpdatedSince() {
@@ -126,5 +141,6 @@ public class RestfulCollection<T> {
public void setUpdatedSince(boolean updatedSince) {
this.updatedSince = updatedSince;
+ put("updatedSince", updatedSince);
}
}
Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanXStreamConverter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanXStreamConverter.java?rev=1370555&r1=1370554&r2=1370555&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanXStreamConverter.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanXStreamConverter.java Tue Aug 7 21:53:23 2012
@@ -100,7 +100,17 @@ public class BeanXStreamConverter implem
private String convertToXml(Object obj) {
writerStack.reset();
- if (obj instanceof Map<?, ?>) {
+ if (obj instanceof RestfulCollection) {
+ XStreamConfiguration.ConverterConfig cc = converterMap
+ .get(XStreamConfiguration.ConverterSet.COLLECTION);
+ cc.mapper.setBaseObject(obj); // thread safe method
+ String result = cc.xstream.toXML(obj);
+
+ if (LOG.isLoggable(Level.FINE))
+ LOG.fine("Result is " + result);
+
+ return XML_DECL + result;
+ } else if (obj instanceof Map<?, ?>) {
Map<?, ?> m = (Map<?, ?>) obj;
XStreamConfiguration.ConverterConfig cc = converterMap
.get(XStreamConfiguration.ConverterSet.MAP);
@@ -114,16 +124,6 @@ public class BeanXStreamConverter implem
return XML_DECL + "<response xmlns=\"http://ns.opensocial.org/2008/opensocial\">" + result + "</response>";
}
- } else if (obj instanceof RestfulCollection) {
- XStreamConfiguration.ConverterConfig cc = converterMap
- .get(XStreamConfiguration.ConverterSet.COLLECTION);
- cc.mapper.setBaseObject(obj); // thread safe method
- String result = cc.xstream.toXML(obj);
-
- if (LOG.isLoggable(Level.FINE))
- LOG.fine("Result is " + result);
-
- return XML_DECL + result;
} else if (obj instanceof DataCollection) {
XStreamConfiguration.ConverterConfig cc = converterMap
.get(XStreamConfiguration.ConverterSet.MAP);
Modified: shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/RestfulCollectionTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/RestfulCollectionTest.java?rev=1370555&r1=1370554&r2=1370555&view=diff
==============================================================================
--- shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/RestfulCollectionTest.java (original)
+++ shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/RestfulCollectionTest.java Tue Aug 7 21:53:23 2012
@@ -64,4 +64,34 @@ public class RestfulCollectionTest exten
assertEquals(totalResults, collection.getTotalResults());
assertEquals(resultsPerPage, collection.getItemsPerPage());
}
+
+ @Test
+ public void testMapMethods() throws Exception {
+ RestfulCollection<String> collection
+ = new RestfulCollection<String>(Lists.<String>newArrayList());
+
+ List<String> entryList = Lists.newArrayList("banana");
+ int startIndex = 5;
+ int totalResults = 8675309;
+ String anyItem = "anyvalue";
+
+ collection.put("list", entryList);
+ collection.put("startIndex", startIndex);
+ collection.put("totalResults", totalResults);
+ collection.put("anyItem",anyItem);
+
+ assertEquals(entryList, collection.get("list"));
+ assertEquals(startIndex, collection.get("startIndex"));
+ assertEquals(totalResults, collection.get("totalResults"));
+ assertEquals(anyItem, collection.get("anyItem"));
+
+ int resultsPerPage = 1;
+ List<String> entry = Lists.newArrayList("banana", "who");
+ collection = new RestfulCollection<String>(entry, startIndex, totalResults, resultsPerPage);
+
+ assertEquals(entry, collection.get("list"));
+ assertEquals(startIndex, collection.get("startIndex"));
+ assertEquals(totalResults, collection.get("totalResults"));
+ assertEquals(resultsPerPage, collection.get("itemsPerPage"));
+ }
}
Modified: shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/atom/AtomFeed.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/atom/AtomFeed.java?rev=1370555&r1=1370554&r2=1370555&view=diff
==============================================================================
--- shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/atom/AtomFeed.java (original)
+++ shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/atom/AtomFeed.java Tue Aug 7 21:53:23 2012
@@ -54,16 +54,7 @@ public class AtomFeed {
@SuppressWarnings("unchecked")
public AtomFeed(Object obj) {
Preconditions.checkNotNull(obj);
- if (obj instanceof Map) {
- Map<?, ?> m = (Map<?, ?>) obj;
- entry = Lists.newArrayList();
- for ( Entry<?, ?> o : m.entrySet()) {
- entry.add(new AtomEntry(o));
- }
- startIndex = 0;
- totalResults = entry.size();
- itemsPerPage = entry.size();
- } else if (obj instanceof RestfulCollection<?>) {
+ if (obj instanceof RestfulCollection<?>) {
RestfulCollection<?> r = (RestfulCollection<?>) obj;
entry = Lists.newArrayList();
List<?> entryList = r.getList();
@@ -75,6 +66,15 @@ public class AtomFeed {
itemsPerPage = r.getItemsPerPage();
author = "?";
link = new AtomLink("rel", "???");
+ } else if (obj instanceof Map) {
+ Map<?, ?> m = (Map<?, ?>) obj;
+ entry = Lists.newArrayList();
+ for ( Entry<?, ?> o : m.entrySet()) {
+ entry.add(new AtomEntry(o));
+ }
+ startIndex = 0;
+ totalResults = entry.size();
+ itemsPerPage = entry.size();
} else if ( obj instanceof DataCollection ) {
DataCollection dc = (DataCollection) obj;
entry = Lists.newArrayList();