class ServerActivator implements EventListener<ServerConfigEvent> {

    public void activateServers(Object object)
    {
        for (ServerSourceController controller : myServerSourceManager.getControllers())
        {
            if (controller instanceof StateServerSourceController)
            {
                StateServerSourceController stateController = (StateServerSourceController)controller;
                ServerSourceProvider serverSource = stateController.getStateServerProvider();
                List<IDataSource> servers = Collections.emptyList();
                if (object instanceof Node)
                {
                    servers = serverSource.getServersInNode((Node)object);
                }
                else if (object instanceof StateType)
                {
                    servers = serverSource.getServersInNode((StateType)object);
                }

                if (!servers.isEmpty())
                {
                    ServerSourceFilterer filterer = stateController.getServerSourceFilterer();

                    filterer.findBusyServers(myActivationListener, servers);

                    List<IDataSource> nonActiveServers = filterer.getNonActiveServers(servers);

                    List<IDataSource> nonAddedServers = filterer.getNonAddedServers(servers);

                    addThenActivate(controller, nonAddedServers, nonActiveServers);
                }
            }
        }
    }

    public  ServerActivator(ServerSourceControllerManager serverSourceManager, EventManager eventManager,
            IActivationListener activationListener);

}