Author: mwebb
Date: Mon Jul 16 04:12:56 2007
New Revision: 556585

URL: http://svn.apache.org/viewvc?view=rev&rev=556585
Log:
added some error checking in the getter methods, and populated the timerManager 
with the actual IoEventTypes that are passed in to the constructor.

Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/filter/ProfilerTimerFilter.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/ProfilerTimerFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/ProfilerTimerFilter.java?view=diff&rev=556585&r1=556584&r2=556585
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/ProfilerTimerFilter.java 
(original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/ProfilerTimerFilter.java 
Mon Jul 16 04:12:56 2007
@@ -99,14 +99,13 @@
         }
         
         timerManager = new HashMap<IoEventType,TimerWorker>();
-        timerManager.put( IoEventType.MESSAGE_RECEIVED, new TimerWorker() );
-        timerManager.put( IoEventType.MESSAGE_SENT, new TimerWorker() );
-        timerManager.put( IoEventType.SESSION_CREATED, new TimerWorker() );
-        timerManager.put( IoEventType.SESSION_OPENED, new TimerWorker() );
-        timerManager.put( IoEventType.SESSION_IDLE, new TimerWorker() );
-        timerManager.put( IoEventType.SESSION_CLOSED, new TimerWorker() );
+        
+        for( IoEventType type : eventsToProfile ){
+            timerManager.put(  type, new TimerWorker() );
+        }
     }
 
+
     /**
      * Returns the [EMAIL PROTECTED] ProfilerTimerUnit} being used.
      *
@@ -130,7 +129,28 @@
         this.timeUnit = timeUnit;
     }
 
-
+    /**
+     * Add an [EMAIL PROTECTED] IoEventType} to profile
+     *
+     * @param type
+     *  The [EMAIL PROTECTED] IoEventType} to profile
+     */
+    public void addEventToProfile( IoEventType type ){
+        if( !timerManager.containsKey( type )){
+            timerManager.put( type, new TimerWorker() );
+        }
+    }
+    
+    /**
+     * Remove an [EMAIL PROTECTED] IoEventType} to profile
+     *
+     * @param type
+     *  The [EMAIL PROTECTED] IoEventType} to profile
+     */
+    public void removeEventToProfile( IoEventType type ){
+        timerManager.remove( type );
+    }
+    
     /**
      * Return the bitmask that is being used to display 
      * timing information for this filter.
@@ -237,6 +257,10 @@
      *  The average time it took to execute the method represented by the 
[EMAIL PROTECTED] IoEventType}
      */
     public double getAverageTime( IoEventType type ){
+        if( !timerManager.containsKey( type )){
+            throw new IllegalArgumentException("You are not monitoring this 
event.  Please add this event first.");
+        }
+        
         return timerManager.get( type ).getAverage();
     }
     
@@ -250,6 +274,10 @@
      *  The total number of method calls for the method represented by the 
[EMAIL PROTECTED] IoEventType}
      */
     public long getTotalCalls( IoEventType type ){
+        if( !timerManager.containsKey( type )){
+            throw new IllegalArgumentException("You are not monitoring this 
event.  Please add this event first.");
+        }
+        
         return timerManager.get( type ).getCalls();
     }
     
@@ -263,6 +291,10 @@
      *  The total time for the method represented by the [EMAIL PROTECTED] 
IoEventType}
      */
     public long getTotalTime( IoEventType type ){
+        if( !timerManager.containsKey( type )){
+            throw new IllegalArgumentException("You are not monitoring this 
event.  Please add this event first.");
+        }
+        
         return timerManager.get( type ).getTotal();
     }
     
@@ -276,6 +308,10 @@
      *  The minimum time this method has executed represented by the [EMAIL 
PROTECTED] IoEventType}
      */
     public long getMinValue( IoEventType type ){
+        if( !timerManager.containsKey( type )){
+            throw new IllegalArgumentException("You are not monitoring this 
event.  Please add this event first.");
+        }
+        
         return timerManager.get( type ).getMin();
     }
     
@@ -289,6 +325,10 @@
      *  The maximum time this method has executed represented by the [EMAIL 
PROTECTED] IoEventType}
      */
     public long getMaxValue( IoEventType type ){
+        if( !timerManager.containsKey( type )){
+            throw new IllegalArgumentException("You are not monitoring this 
event.  Please add this event first.");
+        }
+        
         return timerManager.get( type ).getMax();
     }
     


Reply via email to