package org.gwtoolbox.bean.rebind.scan;
import com.google.gwt.core.ext.GeneratorContext;
import com.google.gwt.core.ext.typeinfo.JClassType;
import com.google.gwt.core.ext.typeinfo.TypeOracle;
import org.gwtoolbox.commons.generator.rebind.EasyTreeLogger;
/**
* @author Uri Boness
*/
public class TypeScanner {
private final EasyTreeLogger logger;
private final GeneratorContext context;
public TypeScanner(EasyTreeLogger logger, GeneratorContext context) {
this.logger = logger;
this.context = context;
}
public void scan(ScannedTypeProcessor... processors) {
TypeOracle typeOracle = context.getTypeOracle();
for (JClassType type : typeOracle.getTypes()) {
for (ScannedTypeProcessor processor : processors) {
processor.process(type);
}
}
for (ScannedTypeProcessor processor : processors) {
processor.finished(logger, context);
}
}
}