package net.sf.openrocket.rocketvisitors;
import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.rocketcomponent.RocketComponentVisitor;
public abstract class BredthFirstRecusiveVisitor<R> implements RocketComponentVisitor<R> {
@Override
public final void visit(RocketComponent visitable) {
this.doAction(visitable);
for (RocketComponent child : visitable.getChildren()) {
this.doAction(child);
}
for (RocketComponent child : visitable.getChildren()) {
this.visit(child);
}
}
protected abstract void doAction(RocketComponent visitable);
}