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.Window;
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(AsyncCallback<Boolean> outcome) {
        index = 0;
        executeNext(outcome);
    }

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

            Window.setStatus(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(outcome);
                    }
                    else
                    {
                        Console.error("Failed to execute "+nextHook.getClass().getName());
                        outcome.onSuccess(Boolean.FALSE);
                    }
                }
            });
        }

        outcome.onSuccess(Boolean.TRUE);
        Window.setStatus("");
    }
}
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.