(no commit message)
[utils] / system / general / src / test / java / org / wamblee / system / Application.java
1 package org.wamblee.system;
2
3 import javax.sql.DataSource;
4
5 import org.wamblee.test.EventTracker;
6
7 public class Application extends AbstractComponent {
8         private static RequiredInterface[] required() {
9                 return
10                 new RequiredInterface[] { 
11                         new DefaultRequiredInterface("datasource", DataSource.class), 
12                         new DefaultRequiredInterface("integer", Integer.class)
13         };
14         }
15
16         private EventTracker<String> _tracker;
17         
18         public Application() {
19                 super("application", new ProvidedInterface[0], required()); 
20         }
21         
22         public Application(EventTracker<String> aTracker) { 
23                 this();
24                 _tracker = aTracker; 
25         }
26
27         @Override
28         protected void doStart(String aContext) {
29                 track("start." + getName()); 
30         }
31         
32         @Override
33         protected void doStop() {
34                 track("stop." + getName());     
35         }
36         
37         private void track(String aString) {
38                 if ( _tracker == null ) { 
39                         return; 
40                 }
41                 _tracker.eventOccurred(aString);
42         }
43 }