1 package org.apache.maven.monitor.event; 2 3 import java.util.Arrays ; 4 import java.util.List ; 5 6 9 public abstract class AbstractSelectiveEventMonitor 10 implements EventMonitor 11 { 12 13 private List boundStartEvents; 14 private List boundErrorEvents; 15 private List boundEndEvents; 16 17 protected AbstractSelectiveEventMonitor(String [] startEvents, String [] endEvents, String [] errorEvents) 18 { 19 this.boundStartEvents = Arrays.asList( startEvents ); 20 21 this.boundEndEvents = Arrays.asList( endEvents ); 22 23 this.boundErrorEvents = Arrays.asList( errorEvents ); 24 } 25 26 public final void startEvent( String eventName, String target, long timestamp ) 27 { 28 if( boundStartEvents.contains( eventName ) ) 29 { 30 doStartEvent( eventName, target, timestamp ); 31 } 32 } 33 34 protected void doStartEvent( String eventName, String target, long timestamp ) 35 { 36 } 37 38 public final void endEvent( String eventName, String target, long timestamp ) 39 { 40 if( boundEndEvents.contains( eventName ) ) 41 { 42 doEndEvent( eventName, target, timestamp ); 43 } 44 } 45 46 protected void doEndEvent( String eventName, String target, long timestamp ) 47 { 48 } 49 50 public final void errorEvent( String eventName, String target, long timestamp, Throwable cause ) 51 { 52 if( boundErrorEvents.contains( eventName ) ) 53 { 54 doErrorEvent( eventName, target, timestamp, cause ); 55 } 56 } 57 58 protected void doErrorEvent( String eventName, String target, long timestamp, Throwable cause ) 59 { 60 } 61 62 } 63 | Popular Tags |