blob: a54d0626cb24e1637640b5e1e92d64442a4f25c7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jem.internal.proxy.core;
/*
*/
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
/**
* This interface is used to contribute to the configuration that will be
* used to start a proxy registry.
*
* @since 1.0.0
*/
public interface IConfigurationContributor {
/**
* Called first before any of the other calls. This can be used to do any internal initializations
* required by the other calls. That way the other calls can have the order changed as the implementation
* requires.
* <p>
* NOTE: For those who nest configuration contributors (i.e. within an implementation of a contributor, more
* contributors are discovered) then it is imperitive that when those contributors are discovered that this method
* be called on them too. This is necessary so the contract with contributors can be followed. It is best if the
* discoveries are actually done in the initialize method itself so that it can pass the launch info right there.
*
* @param info info contains things like containers visible, etc.
*
* @see IConfigurationContributionInfo
* @since 1.0.0
*/
public void initialize(IConfigurationContributionInfo info);
/**
* Contribute to the classpath. The controller is used to do the actual contribution.
*
* @param controller
* @throws CoreException
*
* @since 1.0.0
*/
public void contributeClasspaths(IConfigurationContributionController controller) throws CoreException;
/**
* Contribute updates to the configuration. It will be called before the launch has started.
*
* @param config
* @throws CoreException
*
* @since 1.0.0
*/
public void contributeToConfiguration(ILaunchConfigurationWorkingCopy config) throws CoreException;
/**
* Contribute to the registry (or interact with the remote vm) after the registry has been
* created.
*
* @param registry
*
* @since 1.0.0
*/
public void contributeToRegistry(ProxyFactoryRegistry registry);
}