atg.service.datacollection
Class GenericSummarizer

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.service.datacollection.DataCollectorService
              extended by atg.service.datacollection.GenericSummarizer
All Implemented Interfaces:
NameContextBindingListener, NameContextElement, NameResolver, AdminableService, ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, LogListener, atg.nucleus.logging.TraceApplicationLogging, VariableArgumentApplicationLogging, ComponentNameResolver, Service, ServiceListener, DataCollector, DataListener, Schedulable, java.util.EventListener

public class GenericSummarizer
extends DataCollectorService
implements DataCollector, Schedulable, LogListener

This is a data collector that summarizes data items into summary items which in turn can be queued or summarized further. How often the summarizer emits summary events can be controlled through the Schedulable interface, or by a maximum data item count threshhold, or both. For the convenience of users of LogListeners, a GenericSummarizer is also a LogListener. In practical terms, since most everything running in Dynamo is a GenericService, most everything has logListeners.


Field Summary
static java.lang.String CLASS_VERSION
          Class version string
 
Fields inherited from class atg.nucleus.GenericService
SERVICE_INFO_KEY
 
Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging
DEFAULT_LOG_TRACE_STATUS
 
Fields inherited from interface atg.nucleus.logging.ApplicationLogging
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
 
Constructor Summary
GenericSummarizer()
           
 
Method Summary
 void addDataItem(java.lang.Object pDataItem)
          Add a data item to the aggregate
 void addDataListener(DataListener pListener)
          Adds a listener to the list of data listeners
 void doStartService()
          Perform any necessary initializations to startup service.
If a schedule is provided, then it is started.
 void doStopService()
          Performs tasks required to shutdown service.
 int getBatchItemCount()
          Returns property BatchItemCount
 int getDataItemThreshold()
          Returns property DataItemThreshold
 int getDataListenerCount()
          Returns the number of data listeners
 DataListener[] getDataListeners()
          Returns the list of data listeners as an array property
 java.lang.String[] getGroupBy()
          Returns property GroupBy
 java.lang.String getJobDescription()
          Returns property JobDescription
 java.lang.String getJobName()
          Returns property JobName
 Schedule getSchedule()
          Returns property Schedule
 Scheduler getScheduler()
          Returns property Scheduler
 int getTotalItemCount()
          Returns property TotalItemCount
 void localFlush()
          Flush summarized data to our listeners
 void logEvent(LogEvent pLogEvent)
          Log an event.
 void performScheduledTask(Scheduler pScheduler, ScheduledJob pJob)
          Callback method for the scheduler.
 void removeDataListener(DataListener pListener)
          Removes a listener from the list of data listeners
 void sendDataItem(java.lang.Object pDataItem)
          Sends a data item to all of the listeners
 void setDataItemThreshold(int pDataItemThreshold)
          Sets property DataItemThreshold
 void setGroupBy(java.lang.String[] pGroupBy)
          Sets property GroupBy
 void setJobDescription(java.lang.String pJobDescription)
          Sets property JobDescription
 void setJobName(java.lang.String pJobName)
          Sets property JobName
 void setSchedule(Schedule pSchedule)
          Sets property Schedule
 void setScheduler(Scheduler pScheduler)
          Sets property Scheduler
 void setTotalItemCount(int pTotalItemCount)
          Sets property TotalItemCount
 
Methods inherited from class atg.service.datacollection.DataCollectorService
flush, flushListeners, isPropagateFlush, setPropagateFlush
 
Methods inherited from class atg.nucleus.GenericService
addLogListener, createAdminServlet, getAbsoluteName, getAdminServlet, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
 
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface atg.service.datacollection.DataCollector
flush
 

Field Detail

CLASS_VERSION

public static java.lang.String CLASS_VERSION
Class version string

Constructor Detail

GenericSummarizer

public GenericSummarizer()
Method Detail

setTotalItemCount

public void setTotalItemCount(int pTotalItemCount)
Sets property TotalItemCount


getTotalItemCount

public int getTotalItemCount()
Returns property TotalItemCount


getBatchItemCount

public int getBatchItemCount()
Returns property BatchItemCount


setGroupBy

public void setGroupBy(java.lang.String[] pGroupBy)
Sets property GroupBy


getGroupBy

public java.lang.String[] getGroupBy()
Returns property GroupBy


setScheduler

public void setScheduler(Scheduler pScheduler)
Sets property Scheduler


getScheduler

public Scheduler getScheduler()
Returns property Scheduler


setSchedule

public void setSchedule(Schedule pSchedule)
Sets property Schedule


getSchedule

public Schedule getSchedule()
Returns property Schedule


setJobName

public void setJobName(java.lang.String pJobName)
Sets property JobName


getJobName

public java.lang.String getJobName()
Returns property JobName


setJobDescription

public void setJobDescription(java.lang.String pJobDescription)
Sets property JobDescription


getJobDescription

public java.lang.String getJobDescription()
Returns property JobDescription


setDataItemThreshold

public void setDataItemThreshold(int pDataItemThreshold)
Sets property DataItemThreshold


getDataItemThreshold

public int getDataItemThreshold()
Returns property DataItemThreshold


sendDataItem

public void sendDataItem(java.lang.Object pDataItem)
Sends a data item to all of the listeners


addDataListener

public void addDataListener(DataListener pListener)
Adds a listener to the list of data listeners


removeDataListener

public void removeDataListener(DataListener pListener)
Removes a listener from the list of data listeners


getDataListeners

public DataListener[] getDataListeners()
Returns the list of data listeners as an array property


getDataListenerCount

public int getDataListenerCount()
Returns the number of data listeners


logEvent

public void logEvent(LogEvent pLogEvent)
Log an event. This is a convenience method. We just pass this through to addDataItem.

Specified by:
logEvent in interface LogListener
Parameters:
pLogEvent - the log event

addDataItem

public void addDataItem(java.lang.Object pDataItem)
Add a data item to the aggregate

Specified by:
addDataItem in interface DataListener
Parameters:
pDataItem - item to add

performScheduledTask

public void performScheduledTask(Scheduler pScheduler,
                                 ScheduledJob pJob)
Callback method for the scheduler. Flush out our summarized data.

Specified by:
performScheduledTask in interface Schedulable
Parameters:
pScheduler - calling the job
pJob - the ScheduledJob

localFlush

public void localFlush()
Flush summarized data to our listeners

Specified by:
localFlush in class DataCollectorService

doStartService

public void doStartService()
                    throws ServiceException
Perform any necessary initializations to startup service.
If a schedule is provided, then it is started.

Overrides:
doStartService in class GenericService
Throws:
ServiceException - if the Service had a problem starting up

doStopService

public void doStopService()
                   throws ServiceException
Performs tasks required to shutdown service.

Overrides:
doStopService in class DataCollectorService
Throws:
ServiceException - if the Service had a problem shutting down