Package com.dianping.cat.report.task.alert.summary

Source Code of com.dianping.cat.report.task.alert.summary.AlertSummaryContentGenerator

package com.dianping.cat.report.task.alert.summary;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import org.unidal.lookup.annotation.Inject;

import com.dianping.cat.home.alert.summary.entity.AlertSummary;

public class AlertSummaryContentGenerator extends SummaryContentGenerator {

  @Inject
  private AlertSummaryGenerator m_alertSummaryGenerator;

  @Inject
  private AlertSummaryManager m_alertSummaryManager;

  public static final String ID = "AlertSummaryContentGenerator";

  @SuppressWarnings("unchecked")
  private Map<Object, Object> gatherDomainsForDependBusiness(Map<Object, Object> map) {
    try {
      Map<Object, Object> categories = (Map<Object, Object>) map.get("categories");
      List<Map<Object, Object>> alerts = (List<Map<Object, Object>>) categories
            .get(AlertSummaryVisitor.LONG_CALL_NAME);
      Map<String, List<Map<Object, Object>>> longCallMap = new TreeMap<String, List<Map<Object, Object>>>();

      for (Map<Object, Object> alert : alerts) {
        String domain = (String) alert.get("domain");
        List<Map<Object, Object>> tmpAlerts = longCallMap.get(domain);

        if (tmpAlerts == null) {
          tmpAlerts = new ArrayList<Map<Object, Object>>();
          longCallMap.put(domain, tmpAlerts);
        }
        tmpAlerts.add(alert);
      }

      categories.remove(AlertSummaryVisitor.LONG_CALL_NAME);
      categories.put(AlertSummaryGenerator.LONG_CALL, longCallMap);
      map.put(AlertSummaryGenerator.LONG_CALL + "_length", alerts.size());
    } catch (Exception ex) {
      ex.printStackTrace();
    }

    return map;
  }

  @Override
  public Map<Object, Object> generateModel(String domain, Date date) {
    AlertSummary alertSummary = m_alertSummaryGenerator.generateAlertSummary(domain, date);
    m_alertSummaryManager.insert(alertSummary);

    AlertSummaryVisitor visitor = new AlertSummaryVisitor(alertSummary.getDomain());
    visitor.visitAlertSummary(alertSummary);

    return gatherDomainsForDependBusiness(visitor.getResult());
  }

  @Override
  public String getID() {
    return ID;
  }

  @Override
  protected String getTemplateAddress() {
    return "summary.ftl";
  }

}
TOP

Related Classes of com.dianping.cat.report.task.alert.summary.AlertSummaryContentGenerator

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.