/*******************************************************************************
* Copyright (c) 2009, 2010 Innovation Gate GmbH.
* 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:
* Innovation Gate GmbH - initial API and implementation
******************************************************************************/
package de.innovationgate.eclipse.wgadesigner.models;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.JavaRuntime;
import org.eclipse.jdt.launching.environments.IExecutionEnvironment;
import de.innovationgate.wga.model.KeyValueBean;
public class WGAExecutionEnvironment extends KeyValueBean<String, IExecutionEnvironment> {
public static final String DEFAULT_INSTANCE_ID = "DEFAULT";
public static final WGAExecutionEnvironment DEFAULT_INSTANCE = new WGAExecutionEnvironment(DEFAULT_INSTANCE_ID);
private WGAExecutionEnvironment(String id) {
super(id, null);
}
public WGAExecutionEnvironment(IExecutionEnvironment environment) {
super(buildId(environment), environment);
}
public static String buildId(IExecutionEnvironment environment) {
return environment.getId();
}
@Override
public String toString() {
if (getKey().equals(DEFAULT_INSTANCE_ID)) {
return "Default JRE (" + JavaRuntime.getDefaultVMInstall().getName() + ")";
} else {
return getValue().getId();
}
}
public static IVMInstall findVMInstallById(String id) {
if (id != null) {
if (id.equals(DEFAULT_INSTANCE_ID)) {
return JavaRuntime.getDefaultVMInstall();
} else {
IExecutionEnvironment environment = JavaRuntime.getExecutionEnvironmentsManager().getEnvironment(id);
if (environment != null) {
return environment.getDefaultVM();
}
}
}
return null;
}
public static WGAExecutionEnvironment findById(String id) {
if (id != null) {
if (id.equals(DEFAULT_INSTANCE_ID)) {
return DEFAULT_INSTANCE;
} else {
IExecutionEnvironment environment = JavaRuntime.getExecutionEnvironmentsManager().getEnvironment(id);
if (environment != null) {
return new WGAExecutionEnvironment(environment);
}
}
}
return null;
}
}