Package com.casamind.adware.server.servlet.gdata

Source Code of com.casamind.adware.server.servlet.gdata.StatisticResourcesHandler

/**
*
* Manages (CRUD) report sheets for each entity
*
*/
package com.casamind.adware.server.servlet.gdata;

import java.io.IOException;
import java.util.logging.Logger;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.casamind.adware.server.proxy.GDataDocumentsProxy;
import com.casamind.adware.shared.GoogleDocumentsTaskTypes;
import com.google.appengine.api.taskqueue.QueueFactory;
import com.google.appengine.api.taskqueue.TaskOptions;
import com.google.gdata.data.docs.DocumentListEntry;
import com.google.gdata.util.ServiceException;

@SuppressWarnings("serial")
public class StatisticResourcesHandler extends HttpServlet {
  private static final Logger log = Logger.getLogger(StatisticResourcesHandler.class.getName());
  private String gdataWebLogin, gdataWebPassword, documentsFeedUrl, spreadsheetFeedUrl;
  private GDataDocumentsProxy proxy;
  private long gdataThreadSleep;
  private long gdataConnectTimeout;

  @Override
  public void init(ServletConfig config) throws ServletException {
    super.init(config);
    ServletContext context = config.getServletContext();
    gdataThreadSleep = Long.parseLong(context.getInitParameter("gdataThreadSleep"));
    gdataConnectTimeout = Long.parseLong(context.getInitParameter("gdataConnectTimeout"));
    gdataWebLogin = context.getInitParameter("gdataWebLogin");
    gdataWebPassword = context.getInitParameter("gdataWebPassword");
    documentsFeedUrl = context.getInitParameter("documentsFeedUrl");
    spreadsheetFeedUrl = context.getInitParameter("spreadsheetFeedUrl");
    proxy = new GDataDocumentsProxy(documentsFeedUrl, spreadsheetFeedUrl, gdataWebLogin, gdataWebPassword, gdataThreadSleep, gdataConnectTimeout);
  }

  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String task = req.getParameter("task");
    String title = req.getParameter("title");
    String folder = req.getParameter("folder");
    resp.setHeader("Content-Type", "text/html");
    try {
      DocumentListEntry entry = null;
      if (task.equals(GoogleDocumentsTaskTypes.CREATE)) {
        log.info("Entering GDataTaskTypes.CREATE task!");
        log.info("Searching for document entry '" + title + "' in Google Docs account: " + gdataWebLogin);
        entry = proxy.findDocumentEntry(title);
        if (entry == null) {
          log.warning("Did not find document. Will create it.");
          entry = proxy.createDocumentFile("spreadsheet", title, folder);
          log.info("Created entry in: " + entry.getDocumentLink().getHref());
          log.info("Sleeping: " + gdataThreadSleep + " milliseconds");
          Thread.sleep(gdataThreadSleep);
          log.info("Wake up!");
        }
        log.info("Creating report worksheets");
        proxy.createReprtWorksheets(entry.getTitle().getPlainText());
        log.info("Queueing GDataTaskTypes.INIT task!");
        QueueFactory.getQueue("gdata").add(TaskOptions.Builder.withUrl("/tasks/gdata/reports").param("task", GoogleDocumentsTaskTypes.INIT).param("title", entry.getTitle().getPlainText()));
        log.info("GDataTaskTypes.INIT queued successfully!");
      } else if (task.equals(GoogleDocumentsTaskTypes.DELETE)) {
        log.info("Entering GDataTaskTypes.DELETE task!");
        entry = proxy.findDocumentEntry(title);
        if (entry != null) {
          log.info("Sleeping: " + gdataThreadSleep + " milliseconds");
          Thread.sleep(gdataThreadSleep);
          log.info("Wake up!");
          proxy.deleteDocumentFile(entry);
        } else {
          log.warning("Did not find document '" + title + "'");
        }
      } else if (task.equals(GoogleDocumentsTaskTypes.INIT)) {
        log.info("Entering GDataTaskTypes.INIT task!");
        entry = proxy.findDocumentEntry(title);
        if (entry != null) {
          log.info("Sleeping: " + gdataThreadSleep + " milliseconds");
          Thread.sleep(gdataThreadSleep);
          log.info("Wake up!");
          proxy.initStatSpreadSheet(title);
        } else {
          log.warning("Did not find document '" + title + "'");
        }
      }
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (ServiceException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

  }
}
TOP

Related Classes of com.casamind.adware.server.servlet.gdata.StatisticResourcesHandler

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.