Package org.mule.management.stats

Source Code of org.mule.management.stats.AllStatistics

/*
* $Id: AllStatistics.java 21622 2011-03-29 23:19:52Z mike.schilling $
* --------------------------------------------------------------------------------------
* Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
*
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/

package org.mule.management.stats;

import org.mule.management.stats.printers.AbstractTablePrinter;
import org.mule.management.stats.printers.SimplePrinter;

import java.io.PrintWriter;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
* <code>AllStatistics</code> TODO
*/
public class AllStatistics
{
    private boolean isStatisticsEnabled;
    private long startTime;
    private ApplicationStatistics appStats;
    private Map<String, FlowConstructStatistics> flowConstructStats = new HashMap<String, FlowConstructStatistics>();

    /**
     *
     */
    public AllStatistics()
    {
        clear();
        appStats = new ApplicationStatistics(this);
        appStats.setEnabled(isStatisticsEnabled);
        add(appStats);
    }

    public void logSummary()
    {
        logSummary(new SimplePrinter(System.out));
    }

    public void logSummary(PrintWriter printer)
    {

        if (printer instanceof AbstractTablePrinter)
        {
            printer.print(flowConstructStats.values());
        }
        else
        {
            for (FlowConstructStatistics statistics : flowConstructStats.values())
            {
                printer.print(statistics);
            }
        }
        // printer.println("-----------------------------");
        // printer.println("duration (ms): " + (System.currentTimeMillis() -
        // startTime));
    }

    public synchronized void clear()
    {
        for (FlowConstructStatistics statistics : getServiceStatistics())
        {
            statistics.clear();
        }
        startTime = System.currentTimeMillis();
    }

    /**
     * Are statistics logged
     */
    public boolean isEnabled()
    {
        return isStatisticsEnabled;
    }

    /**
     * Enable statistics logs (this is a dynamic parameter)
     */
    public void setEnabled(boolean b)
    {
        isStatisticsEnabled = b;

        for (FlowConstructStatistics statistics : flowConstructStats.values())
        {
            statistics.setEnabled(b);
        }
    }

    public synchronized long getStartTime()
    {
        return startTime;
    }

    public synchronized void setStartTime(long startTime)
    {
        this.startTime = startTime;
    }

    public synchronized void add(FlowConstructStatistics stat)
    {
        if (stat != null)
        {
            flowConstructStats.put(stat.getName(), stat);
        }
    }

    public synchronized void remove(FlowConstructStatistics stat)
    {
        if (stat != null)
        {
            flowConstructStats.remove(stat.getName());
        }
    }

    /**
     * @deprecated use #getServiceStatistics
     */
    @Deprecated
    public synchronized Collection<FlowConstructStatistics> getComponentStatistics()
    {
        return flowConstructStats.values();
    }

    public synchronized Collection<FlowConstructStatistics> getServiceStatistics()
    {
        return flowConstructStats.values();
    }

    public FlowConstructStatistics getApplicationStatistics()
    {
        return appStats;
    }
}
TOP

Related Classes of org.mule.management.stats.AllStatistics

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.