All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.khubla.pragmatach.plugin.xstream.XStreamResponse Maven / Gradle / Ivy

The newest version!
package com.khubla.pragmatach.plugin.xstream;

import java.io.ByteArrayInputStream;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.IOUtils;

import com.khubla.pragmatach.framework.api.PragmatachException;
import com.khubla.pragmatach.framework.controller.PragmatachController;
import com.khubla.pragmatach.framework.controller.impl.AbstractController;
import com.khubla.pragmatach.framework.controller.impl.AbstractResponse;
import com.thoughtworks.xstream.XStream;

/**
 * @author tome
 */
public class XStreamResponse extends AbstractResponse {
   /**
    * the controller
    */
   private final PragmatachController pragmatachController;

   /**
    * ctor
    */
   public XStreamResponse(Map cacheHeaders, PragmatachController pragmatachController) {
      super(cacheHeaders);
      this.pragmatachController = pragmatachController;
   }

   @Override
   public String getContentType() throws PragmatachException {
      return "text/xml";
   }

   @Override
   public Map getHeaders() throws PragmatachException {
      return super.getCacheHeaders();
   }

   @Override
   public void render(HttpServletResponse httpServletResponse) throws PragmatachException {
      try {
         final XStream xstream = new XStream();
         xstream.omitField(AbstractController.class, "request");
         final String XML = xstream.toXML(pragmatachController);
         final ByteArrayInputStream bais = new ByteArrayInputStream(XML.getBytes());
         IOUtils.copy(bais, httpServletResponse.getOutputStream());
      } catch (final Exception e) {
         throw new PragmatachException("Exception in render", e);
      }
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy