Package com.dianping.cat.report.service.impl

Source Code of com.dianping.cat.report.service.impl.NetTopologyReportService

package com.dianping.cat.report.service.impl;

import java.util.Date;
import java.util.List;

import org.unidal.dal.jdbc.DalException;

import com.dianping.cat.Cat;
import com.dianping.cat.Constants;
import com.dianping.cat.core.dal.HourlyReport;
import com.dianping.cat.core.dal.HourlyReportContent;
import com.dianping.cat.core.dal.HourlyReportContentEntity;
import com.dianping.cat.core.dal.HourlyReportEntity;
import com.dianping.cat.home.nettopo.entity.NetGraphSet;
import com.dianping.cat.home.nettopo.transform.DefaultNativeParser;
import com.dianping.cat.report.service.AbstractReportService;

public class NetTopologyReportService extends AbstractReportService<NetGraphSet> {

  @Override
  public NetGraphSet makeReport(String domain, Date start, Date end) {
    NetGraphSet report = new NetGraphSet();

    return report;
  }

  @Override
  public NetGraphSet queryDailyReport(String domain, Date start, Date end) {
    throw new RuntimeException("net topology report don't support daily report");
  }
 
  private NetGraphSet queryFromHourlyBinary(int id) throws DalException {
    HourlyReportContent content = m_hourlyReportContentDao.findByPK(id, HourlyReportContentEntity.READSET_FULL);

    if (content != null) {
      return DefaultNativeParser.parse(content.getContent());
    } else {
      return null;
    }
  }

  @Override
  public NetGraphSet queryHourlyReport(String domain, Date start, Date end) {
    long startTime = start.getTime();
    String name = Constants.REPORT_NET_TOPOLOGY;
    NetGraphSet netGraphSet = null;
    List<HourlyReport> reports = null;

    try {
      reports = m_hourlyReportDao.findAllByDomainNamePeriod(new Date(startTime), domain, name,
            HourlyReportEntity.READSET_FULL);
    } catch (DalException e) {
      Cat.logError(e);
    }

    if (reports != null && reports.size() > 0) {
      String xml = reports.get(0).getContent();

      if (xml != null && xml.length() > 0) {
        try {
          netGraphSet = com.dianping.cat.home.nettopo.transform.DefaultSaxParser.parse(xml);
        } catch (Exception e) {
          Cat.logError(e);
        }
      } else {
        try {
          netGraphSet = queryFromHourlyBinary(reports.get(0).getId());
            } catch (DalException e) {
              Cat.logError(e);
            }
      }
    }

    return netGraphSet;
  }

  @Override
  public NetGraphSet queryMonthlyReport(String domain, Date start) {
    throw new RuntimeException("net topology report don't support monthly report");
  }

  @Override
  public NetGraphSet queryWeeklyReport(String domain, Date start) {
    throw new RuntimeException("net topology report don't support weekly report");
  }

}
TOP

Related Classes of com.dianping.cat.report.service.impl.NetTopologyReportService

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.