Package intellijcoder.main

Source Code of intellijcoder.main.IntelliJCoderApplication

package intellijcoder.main;

import intellijcoder.arena.ArenaAppletInfo;
import intellijcoder.arena.ArenaAppletProvider;
import intellijcoder.arena.ArenaConfigManager;
import intellijcoder.arena.ArenaProcessLauncher;
import intellijcoder.ipc.IntelliJCoderServer;
import net.jcip.annotations.ThreadSafe;

/**
* Main application, starts server and everything
*
* @author Konstantin Fadeyev
*         22.01.11
*/
@ThreadSafe
public class IntelliJCoderApplication {
    private ArenaAppletProvider arenaAppletProvider;
    private ArenaProcessLauncher arenaLauncher;
    private IntelliJCoderServer server;
    private ArenaConfigManager configManager;
    private int serverPort = 0;

    public IntelliJCoderApplication(ArenaAppletProvider arenaAppletProvider, ArenaProcessLauncher arenaLauncher,
                                    IntelliJCoderServer server, ArenaConfigManager configManager) {
        this.arenaAppletProvider = arenaAppletProvider;
        this.arenaLauncher = arenaLauncher;
        this.server = server;
        this.configManager = configManager;
    }

    public synchronized void launch() throws IntelliJCoderException {
        ArenaAppletInfo appletInfo = arenaAppletProvider.getApplet();
        if(!serverStarted()) {
            serverPort = server.start();
        }
        configManager.setIntelliJCoderAsADefaultEditor();
        arenaLauncher.launch(appletInfo, serverPort);
    }

    public synchronized void shutdown() {
        server.stop();
    }

    private boolean serverStarted() {
        return serverPort > 0;
    }
}
TOP

Related Classes of intellijcoder.main.IntelliJCoderApplication

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.