Package org.jboss.resteasy.plugins.providers.jaxb

Source Code of org.jboss.resteasy.plugins.providers.jaxb.XMLStreamFactory

/*
* JBoss, the OpenSource J2EE webOS Distributable under LGPL license. See terms of license at gnu.org.
*/
package org.jboss.resteasy.plugins.providers.jaxb;

import com.sun.xml.fastinfoset.stax.StAXDocumentParser;
import com.sun.xml.fastinfoset.stax.StAXDocumentSerializer;
import org.codehaus.jettison.badgerfish.BadgerFishXMLStreamReader;
import org.codehaus.jettison.badgerfish.BadgerFishXMLStreamWriter;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.codehaus.jettison.mapped.MappedNamespaceConvention;
import org.codehaus.jettison.mapped.MappedXMLStreamReader;
import org.codehaus.jettison.mapped.MappedXMLStreamWriter;
import org.jboss.resteasy.core.ExceptionAdapter;
import org.jboss.resteasy.plugins.providers.ProviderHelper;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

/**
* A XMLStreamFactory.
*
* @author <a href="ryan@damnhandy.com">Ryan J. McDonough</a>
* @version $Revision:$
*/
final class XMLStreamFactory
{

   private XMLStreamFactory()
   {

   }

   /**
    * FIXME Comment this
    *
    * @param out
    * @return
    */
   public static XMLStreamWriter getXMLStreamWriter(OutputStream out)
   {
      try
      {
         return XMLOutputFactory.newInstance().createXMLStreamWriter(out);
      }
      catch (XMLStreamException e)
      {
         throw new ExceptionAdapter(e);
      }
   }

   /**
    * FIXME Comment this
    *
    * @param entityStream
    * @return
    */
   static XMLStreamReader getXMLStreamReader(InputStream entityStream)
   {
      InputStream in = new BufferedInputStream(entityStream, 2048);
      try
      {
         XMLInputFactory factory = XMLInputFactory.newInstance();
         return factory.createXMLStreamReader(in);
      }
      catch (XMLStreamException e)
      {
         throw new ExceptionAdapter(e);
      }
   }

   /**
    *
    */
   protected static XMLStreamReader getFastinfoSetXMLStreamReader(InputStream entityStream)
   {
      InputStream in = new BufferedInputStream(entityStream, 2048);
      XMLStreamReader streamReader = new StAXDocumentParser(in);
      return streamReader;
   }

   /**
    *
    */
   protected static XMLStreamWriter getFastinfoSetXMLStreamWriter(OutputStream entityStream)
   {
      BufferedOutputStream out = new BufferedOutputStream(entityStream, 2048);
      XMLStreamWriter writer = new StAXDocumentSerializer(out);
      return writer;
   }

   /**
    * FIXME Comment this
    *
    * @param entityStream
    * @return
    */
   protected static XMLStreamReader getMappedXMLStreamReader(InputStream entityStream)
   {
      try
      {
         String jsonString = ProviderHelper.readString(entityStream);
         XMLStreamReader streamReader = new MappedXMLStreamReader(new JSONObject(jsonString));
         return streamReader;
      }
      catch (IOException e)
      {
         throw new ExceptionAdapter(e);
      }
      catch (JSONException e)
      {
         throw new ExceptionAdapter(e);
      }
      catch (XMLStreamException e)
      {
         throw new ExceptionAdapter(e);
      }
   }


   protected static XMLStreamWriter getMappedXMLStreamWriter(OutputStream entityStream)
   {
      OutputStreamWriter out = new OutputStreamWriter(entityStream);
      MappedNamespaceConvention convention = new MappedNamespaceConvention();
      XMLStreamWriter writer = new MappedXMLStreamWriter(convention, out);
      return writer;
   }

   /**
    *
    */
   protected static XMLStreamWriter getBadgerFishXMLStreamWriter(OutputStream entityStream)
   {
      OutputStreamWriter out = new OutputStreamWriter(entityStream);
      XMLStreamWriter writer = new BadgerFishXMLStreamWriter(out);
      return writer;
   }

   /**
    *
    */
   protected static XMLStreamReader getBadgerFishXMLStreamReader(InputStream entityStream)
   {
      try
      {
         String jsonString = ProviderHelper.readString(entityStream);
         XMLStreamReader streamReader = new BadgerFishXMLStreamReader(new JSONObject(jsonString));
         return streamReader;
      }
      catch (IOException e)
      {
         throw new ExceptionAdapter(e);
      }
      catch (JSONException e)
      {
         throw new ExceptionAdapter(e);
      }
      catch (XMLStreamException e)
      {
         throw new ExceptionAdapter(e);
      }
   }


}
TOP

Related Classes of org.jboss.resteasy.plugins.providers.jaxb.XMLStreamFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.