// @topic S-0303-03-02-80 Java Abstract Factory
// @brief class SimulationScenario uses abstract factory

package factory;

import java.util.ArrayList;

public class SimulationScenario {
    IFactoryVisitor factory;

    ArrayList< Visitor > visitors = new ArrayList< Visitor >();
    
    public SimulationScenario( IFactoryVisitor factory ) {
        this.factory = factory;
    }
            
    public void createVisitors( int visitorCount ) {
        while ( visitorCount-- > 0 ) {
            visitors.add( factory.createVisitor() );
        }
    }
    
    public void setFactory(IFactoryVisitor factory) {
        this.factory = factory;
    }
    
    public void play() {}
    public void pause() {}
    public void stop() {}
}