| /******************************************************************************* |
| * Copyright (c) 2011 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.stem.ui.launcher; |
| |
| import java.util.List; |
| import java.util.Map; |
| |
| import org.eclipse.equinox.app.IApplicationContext; |
| |
| /** |
| * Abstract class representing a STEM application launcher |
| * Implementing classes should populate the abstract |
| * launch() method for invocation. |
| * |
| */ |
| public abstract class Launcher |
| { |
| /** |
| * Eclipse Application Context |
| */ |
| protected IApplicationContext context; |
| |
| /** |
| * Parsed command line arguments |
| */ |
| protected Map<String,List<String>> args; |
| |
| |
| public Launcher() |
| { |
| this(null,null); |
| } |
| |
| /** |
| * Launcher super constructor. Sets the application context and command |
| * line arguments for all implementations. |
| * |
| * @param context Eclipse Application Context (passed to IApplication#start()) |
| * @param args Parsed command line arguments |
| */ |
| public Launcher(IApplicationContext context, Map<String,List<String>> args) |
| { |
| this.context = context; |
| this.args = args; |
| } |
| |
| void setContext(IApplicationContext context) |
| { |
| this.context = context; |
| } |
| |
| void setCommandArguments(Map<String,List<String>> args) |
| { |
| this.args = args; |
| } |
| |
| |
| /** |
| * @return The Eclipse application context |
| */ |
| protected IApplicationContext getContext() |
| { |
| return context; |
| } |
| |
| /** |
| * @return The parsed command line arguments |
| */ |
| protected Map<String,List<String>> getCommandArguments() |
| { |
| return args; |
| } |
| |
| /** |
| * Launches the STEM application. Implementations should |
| * use this method to prepare, launch, and manage the lifecycle |
| * of the STEM application based on the conditions of the launcher |
| * implementation. |
| * |
| * The return from this method represents the intended return from |
| * {@link IApplication#start(IApplicationContext)}, an integer from the set of [{@link IApplication#EXIT_OK}, |
| * {@link IApplication#EXIT_RELAUNCH}, {@link IApplication#EXIT_RESTART}]. |
| * |
| * @return See return from IApplication#start(IApplicationContext) |
| */ |
| public abstract Object launch(); |
| } |