@Override
protected void run(Set<ClassOutline> classes) {
JDefinedClass _class = getOutline().getClassFactory().createClass(getPackage(), "BaseVisitor", null);
setOutput(_class);
final JTypeVar returnType = _class.generify("R");
final JTypeVar exceptionType = _class.generify("E", Throwable.class);
final JClass narrowedVisitor = visitor.narrow(returnType, exceptionType);
getOutput()._implements(narrowedVisitor);
for (ClassOutline classOutline : classes) {
if (!classOutline.target.isAbstract()) {
// add the method to the base vizzy