package japicmp.maven.util;
import com.google.common.base.Optional;
import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtClass;
public class CtInterfaceBuilder {
private String name = "japicmp.Test";
protected Optional<CtClass> superInterfaceOptional = Optional.absent();
public CtInterfaceBuilder name(String name) {
this.name = name;
return this;
}
public CtClass addToClassPool(ClassPool classPool) throws CannotCompileException {
CtClass ctClass;
if (superInterfaceOptional.isPresent()) {
ctClass = classPool.makeInterface(this.name, superInterfaceOptional.get());
} else {
ctClass = classPool.makeInterface(this.name);
}
return ctClass;
}
public static CtInterfaceBuilder create() {
return new CtInterfaceBuilder();
}
public CtInterfaceBuilder withSuperInterface(CtClass superInterface) {
this.superInterfaceOptional = Optional.fromNullable(superInterface);
return this;
}
}