package FaultTree;

public abstract class AbstractFaultTreeVisitor {
    public final void visit(FaultTree tree) {
        visitAny(tree);
        if (tree instanceof IntermediateEvent)
            visitIntermediateEvent((IntermediateEvent)tree);
        else if (tree instanceof BasicEvent)
            visitBasicEvent((BasicEvent)tree);
    }

    public void visitAny(FaultTree event) {

    }

    public void visitIntermediateEvent(IntermediateEvent event) {
        visit(event.left);
        visit(event.right);
    }

    public void visitBasicEvent(BasicEvent event) {

    }
}