Package com.esri.gpt.server.usage.factories

Source Code of com.esri.gpt.server.usage.factories.StatisticsWriterFactory

/* See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* Esri Inc. licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.esri.gpt.server.usage.factories;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

import com.esri.gpt.control.rest.writer.ResponseWriter;
import com.esri.gpt.framework.collection.StringAttributeMap;
import com.esri.gpt.framework.util.Val;
import com.esri.gpt.server.usage.api.StatisticsRequestContext;
import com.esri.gpt.server.usage.api.StatisticsTypes;
import com.esri.gpt.server.usage.common.JSONWriter;

/**
* This class is used to instantiate statistics writer to write response.
*
* @author prat5814
*
*/
public class StatisticsWriterFactory {

  /**
   * Creates appropriate writer object and sets it to statistics request
   * context class
   *
   * @param statReqContext
   *            the statistics request context
   * @throws Exception
   *             if exception occurs
   */
  public void makeStatisticsWriter(StatisticsRequestContext statReqContext)
      throws Exception {
    ResponseWriter rsWriter;
    statReqContext.setResponseString(new StringBuilder());
    HttpServletResponse response = statReqContext.getResponse();
    PrintWriter writer = response.getWriter();
    StringAttributeMap attrMap = statReqContext.getStatQueryParams();
    String outputFormat = Val.chkStr(attrMap.getValue("f"));
    if (outputFormat.equalsIgnoreCase("json")
        && statReqContext.getRequestType().equalsIgnoreCase(
            StatisticsTypes.HARVESTER.toString())) {
      response.setContentType("text/plain; charset=UTF-8");
      rsWriter = new JSONWriter(writer,
          statReqContext.getResponseString());
    } else if (outputFormat.equalsIgnoreCase("html")) {
      throw new Exception("Output format not supported.");
    } else if (outputFormat.equalsIgnoreCase("xml")) {
      throw new Exception("Output format not supported.");
    } else {
      rsWriter = new JSONWriter(writer,
          statReqContext.getResponseString());
    }
    statReqContext.setWriter(rsWriter);
  }
}
TOP

Related Classes of com.esri.gpt.server.usage.factories.StatisticsWriterFactory

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.