1 /******************************************************************************* 2 * Copyright (c) 2006 IBM Corporation and others. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * IBM Corporation - initial API and implementation 10 *******************************************************************************/ 11 package org.eclipse.jdt.launching; 12 13 import java.util.Map; 14 15 import org.eclipse.core.runtime.CoreException; 16 import org.eclipse.core.runtime.IProgressMonitor; 17 18 /** 19 * Optional extensions that may be implemented by an 20 * {@link org.eclipse.jdt.launching.IVMInstall}, providing access to 21 * a JRE's system properties. 22 * <p> 23 * Clients that implement {@link org.eclipse.jdt.launching.IVMInstall} may additionally 24 * implement this interface. However, it is strongly recommended that clients subclass 25 * {@link org.eclipse.jdt.launching.AbstractVMInstall} instead, which already implements 26 * this interface, and will insulate clients from additional API additions in the future. 27 * </p> 28 * @since 3.2 29 */ 30 public interface IVMInstall3 { 31 32 /** 33 * Evaluates the specified system properties in this VM, returning the result 34 * as a map of property names to property values. 35 * 36 * @param properties the property names to evaluate, for example <code>{"user.home"}</code> 37 * @param monitor progress monitor or <code>null</code> 38 * @return map of system property names to associated property values 39 * @throws CoreException if an exception occurs evaluating the properties 40 * @since 3.2 41 */ 42 public Map evaluateSystemProperties(String[] properties, IProgressMonitor monitor) throws CoreException; 43 } 44