Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jboss.resteasy.plugins.providers.atom;
  
  

Author(s):
Bill Burke
Version:
$Revision: 1 $
 
 @Produces("application/atom+*")
 @Consumes("application/atom+*")
 {
    @Context
    protected Providers providers;
 
    protected JAXBContextFinder getFinder(MediaType type)
    {
       if (resolver == nullreturn null;
       return resolver.getContext(null);
    }
 
    public boolean isReadable(Class<?> typeType genericTypeAnnotation[] annotationsMediaType mediaType)
    {
       return Entry.class.isAssignableFrom(type);
    }
 
    public Entry readFrom(Class<EntrytypeType genericTypeAnnotation[] annotationsMediaType mediaTypeMultivaluedMap<StringStringhttpHeadersInputStream entityStreamthrows IOExceptionWebApplicationException
    {
       JAXBContextFinder finder = getFinder(mediaType);
       if (finder == null)
       {
          throw new JAXBUnmarshalException("Unable to find JAXBContext for media type: " + mediaType);
       }
 
       try
       {
          JAXBContext ctx = finder.findCachedContext(Entry.classmediaTypeannotations);
          Entry entry = (Entryctx.createUnmarshaller().unmarshal(entityStream);
          if (entry.getContent() != nullentry.getContent().setFinder(finder);
          return entry;
       }
       catch (JAXBException e)
       {
          throw new JAXBUnmarshalException("Unable to unmarshal: " + mediaTypee);
       }
    }
 
    public boolean isWriteable(Class<?> typeType genericTypeAnnotation[] annotationsMediaType mediaType)
    {
       return Entry.class.isAssignableFrom(type);
    }
 
    public long getSize(Entry entryClass<?> typeType genericTypeAnnotation[] annotationsMediaType mediaType)
    {
       return -1;
    }
 
    public void writeTo(Entry entryClass<?> typeType genericTypeAnnotation[] annotationsMediaType mediaTypeMultivaluedMap<StringObjecthttpHeadersOutputStream entityStreamthrows IOExceptionWebApplicationException
    {
       JAXBContextFinder finder = getFinder(mediaType);
       if (finder == null)
       {
          throw new JAXBMarshalException("Unable to find JAXBContext for media type: " + mediaType);
       }
       HashSet<Classset = new HashSet<Class>();
       set.add(Entry.class);
       if (entry.getContent() != null && entry.getContent().getJAXBObject() != null)
       {
          set.add(entry.getContent().getJAXBObject().getClass());
       }
       try
       {
          JAXBContext ctx = finder.createContext(annotationsset.toArray(new Class[set.size()]));
         Marshaller marshaller = ctx.createMarshaller();
         NamespacePrefixMapper mapper = new NamespacePrefixMapper()
         {
            public String getPreferredPrefix(String namespaceString s1boolean b)
            {
               if (namespace.equals("http://www.w3.org/2005/Atom")) return "atom";
               else return s1;
            }
         };
         marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper"mapper);
         marshaller.marshal(entryentityStream);
      }
      catch (JAXBException e)
      {
         throw new JAXBMarshalException("Unable to marshal: " + mediaTypee);
      }
   }
New to GrepCode? Check out our FAQ X