• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.testng.internal;
2 
3 import org.testng.IClass;
4 import org.testng.ITestClassFinder;
5 import org.testng.ITestContext;
6 import org.testng.ITestObjectFactory;
7 import org.testng.collections.Maps;
8 import org.testng.internal.annotations.IAnnotationFinder;
9 import org.testng.xml.XmlClass;
10 import org.testng.xml.XmlTest;
11 
12 import java.util.Map;
13 
14 /**
15  * This class
16  *
17  * @author <a href="mailto:cedric@beust.com">Cedric Beust</a>
18  */
19 abstract public class BaseClassFinder implements ITestClassFinder {
20   private Map<Class, IClass> m_classes = Maps.newLinkedHashMap();
21 
22   @Override
getIClass(Class cls)23   public IClass getIClass(Class cls) {
24     return m_classes.get(cls);
25   }
26 
putIClass(Class cls, IClass iClass)27   protected void putIClass(Class cls, IClass iClass) {
28     if (! m_classes.containsKey(cls)) {
29       m_classes.put(cls, iClass);
30     }
31   }
32 
ppp(String s)33   private void ppp(String s) {
34     System.out.println("[BaseClassFinder] " + s);
35   }
36 
37   /**
38    * @param cls
39    * @return An IClass for the given class, or null if we have
40    * already treated this class.
41    */
findOrCreateIClass(ITestContext context, Class cls, XmlClass xmlClass, Object instance, XmlTest xmlTest, IAnnotationFinder annotationFinder, ITestObjectFactory objectFactory)42   protected IClass findOrCreateIClass(ITestContext context, Class cls, XmlClass xmlClass,
43       Object instance, XmlTest xmlTest, IAnnotationFinder annotationFinder,
44       ITestObjectFactory objectFactory)
45   {
46     IClass result = m_classes.get(cls);
47     if (null == result) {
48       result = new ClassImpl(context, cls, xmlClass, instance, m_classes, xmlTest, annotationFinder,
49           objectFactory);
50       m_classes.put(cls, result);
51     }
52 
53     return result;
54   }
55 
getExistingClasses()56   protected Map getExistingClasses() {
57     return m_classes;
58   }
59 
classExists(Class cls)60   protected boolean classExists(Class cls) {
61     return m_classes.containsKey(cls);
62   }
63 
64   @Override
findTestClasses()65   public IClass[] findTestClasses() {
66     return m_classes.values().toArray(new IClass[m_classes.size()]);
67    }
68 }
69