Package nsf.playground.playground

Source Code of nsf.playground.playground.PreviewGadgetHandler$RequestParams

package nsf.playground.playground;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Serializable;
import java.io.StringReader;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ibm.commons.util.StringUtil;
import com.ibm.commons.util.SystemCache;
import com.ibm.commons.util.io.ByteStreamCache;
import com.ibm.commons.util.io.ReaderInputStream;


public class PreviewGadgetHandler extends PreviewHandler {

  static class RequestParams implements Serializable {
    private static final long serialVersionUID = 1L;
    String sOptions;
    String gadget;
    String html;
    String js;
    String css;
    String json;
    String properties;
        public RequestParams(String sOptions, String gadget, String html, String js, String css, String json, String properties) {
          this.sOptions = sOptions;
          this.gadget = gadget;
          this.html = html;
          this.js = js;
          this.css = css;
          this.json = json;
          this.properties = properties;
        }
  }

  private static SystemCache requestParamsMap = new SystemCache("gadgets", 50);

  @Override
  public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String sOptions = req.getParameter("fm_options");
    String gadgetId = req.getParameter("fm_gadgetid");
    String gadget = req.getParameter("fm_gadget");
    String html = req.getParameter("fm_html");
    String js = req.getParameter("fm_js");
        String css = req.getParameter("fm_css");
        String json = req.getParameter("fm_json");
        String properties = req.getParameter("fm_properties");
        RequestParams requestParams = new RequestParams(sOptions,gadget,html,js,css,json,properties);
        requestParamsMap.put(gadgetId, requestParams);
        resp.setStatus(200);
  }

  @Override
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String pathInfo = req.getPathInfo();
    String[] parts = StringUtil.splitString(pathInfo.substring(1), '/', false);
    if(parts.length==3) {
      RequestParams requestParams = (RequestParams)requestParamsMap.get(parts[1]);
      if(requestParams!=null) {
        String fileName = parts[2];
        if(StringUtil.endsWithIgnoreCase(fileName,".xml")) {
          emit(resp,requestParams.gadget,"text/xml;charset=utf-8");
          return;
        }
        if(StringUtil.endsWithIgnoreCase(fileName,".html")) {
          emit(resp,requestParams.html,"text/html;charset=utf-8");
          return;
        }
        if(StringUtil.endsWithIgnoreCase(fileName,".css")) {
          emit(resp,requestParams.css,"text/css;charset=utf-8");
          return;
        }
        if(StringUtil.endsWithIgnoreCase(fileName,".js")) {
          emit(resp,requestParams.js,"application/javascript;charset=utf-8");
          return;
        }
        if(StringUtil.endsWithIgnoreCase(fileName,".json")) {
          emit(resp,requestParams.json,"application/json;charset=utf-8");
          return;
        }
      } else {
            resp.setStatus(404);
        PrintWriter pw = resp.getWriter();
        pw.println("In memory gadget cache has expired");
        pw.flush();
      }
    }
   
    PrintWriter pw = resp.getWriter();
    pw.println("Social Business Toolkit Playground - OpenSocial Gadget Snippet Preview Servlet");
    pw.flush();
   
    // Return the different parts of the gadget
  }
 
  private void emit(HttpServletResponse resp, String text, String contentType) throws IOException {
    resp.setStatus(200);
    resp.setContentType(contentType);
    ByteStreamCache bs = new ByteStreamCache();
    InputStream is = new ReaderInputStream(new StringReader(text),"utf-8");
    bs.copyFrom(is);
    resp.setContentLength((int)bs.getLength());
    OutputStream os = resp.getOutputStream();
    bs.copyTo(os);
    os.flush();
  }
}
TOP

Related Classes of nsf.playground.playground.PreviewGadgetHandler$RequestParams

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.