package org.test4j.module.core;
/**
* 用来指代@BeforeClass和@AfterClass执行时,当前的测试对象(testedObject)
*
* @author darui.wudr
*
*/
@SuppressWarnings("rawtypes")
public abstract class ClazzAroundObject {
private Class claz;
protected ClazzAroundObject(Class clazz) {
this.claz = clazz;
}
@Override
public int hashCode() {
int result = 31 + ((claz == null) ? 0 : claz.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
} else if (obj == null || this.getClass() != obj.getClass()) {
return false;
} else {
return claz == ((ClazzAroundObject) obj).claz;
}
}
public Class getClazz() {
return this.claz;
}
public void clean() {
this.claz = null;
}
public static class ClazzBeforeObject extends ClazzAroundObject {
public ClazzBeforeObject(Class clazz) {
super(clazz);
}
}
public static class ClazzAfterObject extends ClazzAroundObject {
protected ClazzAfterObject(Class clazz) {
super(clazz);
}
}
}