Package com.dianping.cat.report.task.transaction

Source Code of com.dianping.cat.report.task.transaction.TransactionMerger

/**
*
*/
package com.dianping.cat.report.task.transaction;

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

import com.dianping.cat.consumer.transaction.TransactionReportMerger;
import com.dianping.cat.consumer.transaction.TransactionReportCountFilter;
import com.dianping.cat.consumer.transaction.model.entity.TransactionReport;
import com.dianping.cat.report.task.TaskHelper;

public class TransactionMerger {

  private TransactionReport merge(String reportDomain, List<TransactionReport> reports, boolean isDaily) {
    TransactionReportMerger merger = null;
    if (isDaily) {
      merger = new HistoryTransactionReportMerger(new TransactionReport(reportDomain));
    } else {
      merger = new TransactionReportMerger(new TransactionReport(reportDomain));
    }
    for (TransactionReport report : reports) {
      report.accept(merger);
    }

    return merger.getTransactionReport();
  }

  public TransactionReport mergeForDaily(String reportDomain, List<TransactionReport> reports, Set<String> domainSet) {
    TransactionReport transactionReport = merge(reportDomain, reports, true);
    HistoryTransactionReportMerger merger = new HistoryTransactionReportMerger(new TransactionReport(reportDomain));
    TransactionReport transactionReport2 = merge(reportDomain, reports, true);
    com.dianping.cat.consumer.transaction.model.entity.Machine allMachines = merger
          .mergesForAllMachine(transactionReport2);
    transactionReport.addMachine(allMachines);
    transactionReport.getIps().add("All");
    transactionReport.getDomainNames().addAll(domainSet);

    Date date = transactionReport.getStartTime();
    transactionReport.setStartTime(TaskHelper.todayZero(date));
    Date end = new Date(TaskHelper.tomorrowZero(date).getTime() - 1000);
    transactionReport.setEndTime(end);

    new TransactionReportCountFilter().visitTransactionReport(transactionReport);
    return transactionReport;
  }

}
TOP

Related Classes of com.dianping.cat.report.task.transaction.TransactionMerger

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.