Package org.jboss.as.console.client.core.bootstrap

Source Code of org.jboss.as.console.client.core.bootstrap.BootstrapProcess

package org.jboss.as.console.client.core.bootstrap;

import com.google.gwt.user.client.rpc.AsyncCallback;
import org.jboss.as.console.client.Console;
import org.jboss.as.console.client.shared.dispatch.AsyncCommand;

import java.util.LinkedList;

/**
* @author Heiko Braun
* @date 12/7/11
*/
public class BootstrapProcess {

    private LinkedList<AsyncCommand> hooks = new LinkedList<AsyncCommand>();
    private int index = 0;

    public void addHook(AsyncCommand hook) {
        hooks.add(hook);
    }

    public void execute() {
        index = 0;
        executeNext();
    }

    private void executeNext() {
        if(index < hooks.size())
        {
            final AsyncCommand nextHook = hooks.get(index);
            index++;

            //System.out.println(index+": "+nextHook.getClass().getName());

            nextHook.execute(new AsyncCallback<Boolean>() {
                @Override
                public void onFailure(Throwable caught) {
                    Console.error("Bootstrap failed", caught.getMessage());
                }

                @Override
                public void onSuccess(Boolean successful) {
                    if(successful)
                    {
                        executeNext();
                    }
                    else
                    {
                        Console.error("Failed to execute "+nextHook.getClass().getName());
                    }
                }
            });
        }
    }
}
TOP

Related Classes of org.jboss.as.console.client.core.bootstrap.BootstrapProcess

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.