// @topic S-0314-13-01-10 Java Visitor Design pattern
// @brief Various visitors visiting building elevators and floors

package visitors;

import java.util.ArrayList;

public class MainApp {

    public static void main(String[] args) {
        Elevator e1 = new Elevator();
        Elevator e2 = new Elevator();

        Floor f1 = new Floor();
        Floor f2 = new Floor();
        Floor f3 = new Floor();

        ArrayList< IElement> visitables = new ArrayList<>();

        visitables.add(e1);
        visitables.add(e2);
        visitables.add(f1);
        visitables.add(f2);
        visitables.add(f3);

        VisitorEmployee employee = new VisitorEmployee();
        VisitorGuest guest = new VisitorGuest();
        ArrayList< IVisitor> visitors = new ArrayList<>();
        visitors.add(employee);
        visitors.add(guest);

        for (IElement element : visitables) {
            for (IVisitor visitor : visitors) {
                element.accept(visitor);

            }
        }
    }//main

}//class MainApp