You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by el...@apache.org on 2009/09/09 14:13:17 UTC

svn commit: r812918 - in /incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom: AbstractAtomEntryProvider.java AbstractAtomFeedProvider.java AtomEntrySyndEntryProvider.java AtomFeedSyndFeedProvider.java

Author: elman
Date: Wed Sep  9 12:13:17 2009
New Revision: 812918

URL: http://svn.apache.org/viewvc?rev=812918&view=rev
Log:
More redundant providers. See [WINK-169]

Removed:
    incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AbstractAtomEntryProvider.java
    incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AbstractAtomFeedProvider.java
Modified:
    incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AtomEntrySyndEntryProvider.java
    incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AtomFeedSyndFeedProvider.java

Modified: incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AtomEntrySyndEntryProvider.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AtomEntrySyndEntryProvider.java?rev=812918&r1=812917&r2=812918&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AtomEntrySyndEntryProvider.java (original)
+++ incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AtomEntrySyndEntryProvider.java Wed Sep  9 12:13:17 2009
@@ -29,11 +29,13 @@
 import javax.ws.rs.Consumes;
 import javax.ws.rs.Produces;
 import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.ext.MessageBodyReader;
 import javax.ws.rs.ext.MessageBodyWriter;
 import javax.ws.rs.ext.Provider;
+import javax.ws.rs.ext.Providers;
 
 import org.apache.wink.common.model.atom.AtomEntry;
 import org.apache.wink.common.model.synd.SyndEntry;
@@ -41,8 +43,11 @@
 @Provider
 @Consumes(MediaType.APPLICATION_ATOM_XML)
 @Produces(MediaType.APPLICATION_ATOM_XML)
-public class AtomEntrySyndEntryProvider extends AbstractAtomEntryProvider<SyndEntry> implements
-    MessageBodyReader<SyndEntry>, MessageBodyWriter<SyndEntry> {
+public class AtomEntrySyndEntryProvider implements MessageBodyReader<SyndEntry>,
+    MessageBodyWriter<SyndEntry> {
+
+    @Context
+    private Providers providers;
 
     public boolean isReadable(Class<?> type,
                               Type genericType,
@@ -57,13 +62,15 @@
                               MediaType mediaType,
                               MultivaluedMap<String, String> httpHeaders,
                               InputStream entityStream) throws IOException, WebApplicationException {
+        MessageBodyReader<AtomEntry> reader =
+            providers.getMessageBodyReader(AtomEntry.class, genericType, annotations, mediaType);
         AtomEntry entry =
-            readEntry(AtomEntry.class,
-                      genericType,
-                      annotations,
-                      mediaType,
-                      httpHeaders,
-                      entityStream);
+            reader.readFrom(AtomEntry.class,
+                            genericType,
+                            annotations,
+                            mediaType,
+                            httpHeaders,
+                            entityStream);
         return entry.toSynd(new SyndEntry());
     }
 
@@ -82,12 +89,23 @@
                         MultivaluedMap<String, Object> httpHeaders,
                         OutputStream entityStream) throws IOException, WebApplicationException {
         AtomEntry entry = new AtomEntry(t);
-        writeEntry(entry,
-                   AtomEntry.class,
-                   genericType,
-                   annotations,
-                   mediaType,
-                   httpHeaders,
-                   entityStream);
+        MessageBodyWriter<AtomEntry> writer =
+            providers.getMessageBodyWriter(AtomEntry.class, genericType, annotations, mediaType);
+
+        writer.writeTo(entry,
+                       AtomEntry.class,
+                       genericType,
+                       annotations,
+                       mediaType,
+                       httpHeaders,
+                       entityStream);
+    }
+
+    public long getSize(SyndEntry t,
+                        Class<?> type,
+                        Type genericType,
+                        Annotation[] annotations,
+                        MediaType mediaType) {
+        return -1;
     }
 }

Modified: incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AtomFeedSyndFeedProvider.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AtomFeedSyndFeedProvider.java?rev=812918&r1=812917&r2=812918&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AtomFeedSyndFeedProvider.java (original)
+++ incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/atom/AtomFeedSyndFeedProvider.java Wed Sep  9 12:13:17 2009
@@ -29,11 +29,13 @@
 import javax.ws.rs.Consumes;
 import javax.ws.rs.Produces;
 import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.ext.MessageBodyReader;
 import javax.ws.rs.ext.MessageBodyWriter;
 import javax.ws.rs.ext.Provider;
+import javax.ws.rs.ext.Providers;
 
 import org.apache.wink.common.model.atom.AtomFeed;
 import org.apache.wink.common.model.synd.SyndFeed;
@@ -41,8 +43,11 @@
 @Provider
 @Consumes(MediaType.APPLICATION_ATOM_XML)
 @Produces(MediaType.APPLICATION_ATOM_XML)
-public class AtomFeedSyndFeedProvider extends AbstractAtomFeedProvider<SyndFeed> implements
-    MessageBodyReader<SyndFeed>, MessageBodyWriter<SyndFeed> {
+public class AtomFeedSyndFeedProvider implements MessageBodyReader<SyndFeed>,
+    MessageBodyWriter<SyndFeed> {
+
+    @Context
+    private Providers providers;
 
     public boolean isReadable(Class<?> type,
                               Type genericType,
@@ -57,8 +62,16 @@
                              MediaType mediaType,
                              MultivaluedMap<String, String> httpHeaders,
                              InputStream entityStream) throws IOException, WebApplicationException {
+
+        MessageBodyReader<AtomFeed> reader =
+            providers.getMessageBodyReader(AtomFeed.class, genericType, annotations, mediaType);
         AtomFeed feed =
-            readFeed(AtomFeed.class, genericType, annotations, mediaType, httpHeaders, entityStream);
+            reader.readFrom(AtomFeed.class,
+                            genericType,
+                            annotations,
+                            mediaType,
+                            httpHeaders,
+                            entityStream);
         return feed.toSynd(new SyndFeed());
     }
 
@@ -77,12 +90,22 @@
                         MultivaluedMap<String, Object> httpHeaders,
                         OutputStream entityStream) throws IOException, WebApplicationException {
         AtomFeed feed = new AtomFeed(t);
-        writeFeed(feed,
-                  AtomFeed.class,
-                  genericType,
-                  annotations,
-                  mediaType,
-                  httpHeaders,
-                  entityStream);
+        MessageBodyWriter<AtomFeed> writer =
+            providers.getMessageBodyWriter(AtomFeed.class, genericType, annotations, mediaType);
+        writer.writeTo(feed,
+                       AtomFeed.class,
+                       genericType,
+                       annotations,
+                       mediaType,
+                       httpHeaders,
+                       entityStream);
+    }
+
+    public long getSize(SyndFeed t,
+                        Class<?> type,
+                        Type genericType,
+                        Annotation[] annotations,
+                        MediaType mediaType) {
+        return -1;
     }
 }