org.testng.internal.ClassInfoMap Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of testng Show documentation
Show all versions of testng Show documentation
Testing framework for Java
package org.testng.internal;
import org.testng.collections.Maps;
import org.testng.xml.XmlClass;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class ClassInfoMap {
private Map, XmlClass> m_map = Maps.newLinkedHashMap();
private boolean includeNestedClasses;
public ClassInfoMap() {
}
public ClassInfoMap(List classes) {
this(classes, true);
}
public ClassInfoMap(List classes, boolean includeNested) {
includeNestedClasses = includeNested;
for (XmlClass xmlClass : classes) {
try {
Class c = xmlClass.getSupportClass();
registerClass(c, xmlClass);
} catch (NoClassDefFoundError e) {
Utils.log("[ClassInfoMap]", 1, "Unable to open class " + xmlClass.getName()
+ " - unable to resolve class reference " + e.getMessage());
if (xmlClass.loadClasses()) {
throw e;
}
}
}
}
private void registerClass(Class cl, XmlClass xmlClass) {
m_map.put(cl, xmlClass);
if (includeNestedClasses) {
for (Class c : cl.getClasses()) {
if (! m_map.containsKey(c)) registerClass(c, xmlClass);
}
}
}
public void addClass(Class cls) {
m_map.put(cls, null);
}
public XmlClass getXmlClass(Class cls) {
return m_map.get(cls);
}
public void put(Class cls, XmlClass xmlClass) {
m_map.put(cls, xmlClass);
}
public Set> getClasses() {
return m_map.keySet();
}
public int getSize() {
return m_map.size();
}
}