View Javadoc

1   /*
2       Jameleon - An automation testing tool..
3       Copyright (C) 2006 Christian W. Hargraves (engrean@hotmail.com)
4       
5       This library is free software; you can redistribute it and/or
6       modify it under the terms of the GNU Lesser General Public
7       License as published by the Free Software Foundation; either
8       version 2.1 of the License, or (at your option) any later version.
9   
10      This library is distributed in the hope that it will be useful,
11      but WITHOUT ANY WARRANTY; without even the implied warranty of
12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13      Lesser General Public License for more details.
14  
15      You should have received a copy of the GNU Lesser General Public
16      License along with this library; if not, write to the Free Software
17      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111AssertLevel.NO_FUNCTION07 USA
18  */
19  package net.sf.jameleon.event;
20  
21  import net.sf.jameleon.TestSuiteTag;
22  
23  import java.util.Collections;
24  import java.util.Iterator;
25  import java.util.LinkedList;
26  import java.util.List;
27  
28  public class TestSuiteEventHandler{
29  
30      private static TestSuiteEventHandler eventHandler;
31      private final List testSuiteListeners = Collections.synchronizedList(new LinkedList());;
32  
33      private TestSuiteEventHandler(){}
34  
35      public static TestSuiteEventHandler getInstance(){
36          if (eventHandler == null) {
37              eventHandler = new TestSuiteEventHandler();
38          }
39          return eventHandler;
40      }
41  
42      public void clearInstance(){
43          eventHandler = null;
44      }
45  
46      public void addTestSuiteListener(TestSuiteListener tsl){
47          if (tsl != null && !testSuiteListeners.contains(tsl)){
48              testSuiteListeners.add(tsl);
49          }
50      }
51  
52      public List getTestSuiteListeners(){
53          return testSuiteListeners;
54      }
55  
56      public void removeTestSuiteListener(TestSuiteListener tsl){
57          testSuiteListeners.remove(tsl);
58      }
59  
60      public void beginTestSuite(TestSuiteTag tst){
61          TestSuiteEvent tse = new TestSuiteEvent(tst);
62          synchronized(testSuiteListeners){
63              Iterator it = testSuiteListeners.iterator();
64              TestSuiteListener tsl;
65              while (it.hasNext()) {
66                  tsl = (TestSuiteListener)it.next();
67                  tsl.beginTestSuite(tse);
68              }
69          }
70      }
71  
72      public void endTestSuite(TestSuiteTag tst){
73          TestSuiteEvent tse = new TestSuiteEvent(tst);
74          synchronized(testSuiteListeners){
75              Iterator it = testSuiteListeners.iterator();
76              TestSuiteListener tsl;
77              while (it.hasNext()) {
78                  tsl = (TestSuiteListener)it.next();
79                  tsl.endTestSuite(tse);
80              }
81          }
82      }
83  
84  }