org.hackystat.telemetry.analyzer.reducer
Class TelemetryReducerManager

java.lang.Object
  extended by org.hackystat.telemetry.analyzer.reducer.TelemetryReducerManager

public class TelemetryReducerManager
extends java.lang.Object

Provides a singleton manager for telemetry reducers.

Author:
Qin ZHANG, Philip Johnson

Method Summary
 TelemetryStreamCollection compute(java.lang.String reducerName, org.hackystat.dailyprojectdata.client.DailyProjectDataClient dpdClient, org.hackystat.sensorbase.resource.projects.jaxb.Project project, org.hackystat.utilities.time.interval.Interval interval, java.lang.String[] parameters)
          Invokes the telemetry reducer to perform computations and generate a TelemetryStreamCollection.
 java.util.Collection<TelemetryReducerInfo> getAllReducerInfo()
          Returns information about all defined TelemetryReducers.
static TelemetryReducerManager getInstance()
          Gets the singleton instance of this class.
 TelemetryReducerInfo getReducerInfo(java.lang.String reducerName)
          Gets telemetry reducer information by name.
 boolean isReducer(java.lang.String reducerName)
          Determines whether a particular telemetry reducer is defined.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static TelemetryReducerManager getInstance()
Gets the singleton instance of this class.

Returns:
An instance of this class.

compute

public TelemetryStreamCollection compute(java.lang.String reducerName,
                                         org.hackystat.dailyprojectdata.client.DailyProjectDataClient dpdClient,
                                         org.hackystat.sensorbase.resource.projects.jaxb.Project project,
                                         org.hackystat.utilities.time.interval.Interval interval,
                                         java.lang.String[] parameters)
                                  throws TelemetryReducerException
Invokes the telemetry reducer to perform computations and generate a TelemetryStreamCollection.

Parameters:
reducerName - The name of the reducer to be invoked.
project - The project which defines the scope of metrics to be used in the computation.
dpdClient - The DPD Client.
interval - The time interval.
parameters - Parameters passed to reducer implementation. In case a reducer does not need any parameter, either null or an empty array may be passed.
Returns:
The resulting instance of TelemetryStreamCollection.
Throws:
TelemetryReducerException - If anything is wrong.

isReducer

public boolean isReducer(java.lang.String reducerName)
Determines whether a particular telemetry reducer is defined.

Parameters:
reducerName - Telemetry reducer name.
Returns:
True if the specified telemetry reducer is defined.

getReducerInfo

public TelemetryReducerInfo getReducerInfo(java.lang.String reducerName)
Gets telemetry reducer information by name.

Parameters:
reducerName - The name of the reducer.
Returns:
The telemetry reducer information, or null if the reducer is not defined.

getAllReducerInfo

public java.util.Collection<TelemetryReducerInfo> getAllReducerInfo()
Returns information about all defined TelemetryReducers.

Returns:
A collection of TelemetryReducerInfo instances.