1 /******************************************************************************* 2 * Copyright (c) 2000, 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.update.core; 12 13 import java.net.URL; 14 15 import org.eclipse.core.runtime.IAdaptable; 16 17 /** 18 * Install handler entry. 19 * Associates an optional custom install handler with the feature. 20 * Install handlers must implement the IInstallHandler interface. 21 * <p> 22 * Clients may implement this interface. However, in most cases clients should 23 * directly instantiate or subclass the provided implementation of this 24 * interface. 25 * </p> 26 * <p> 27 * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to 28 * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 29 * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 30 * (repeatedly) as the API evolves. 31 * </p> 32 * @see org.eclipse.update.core.InstallHandlerEntry 33 * @see org.eclipse.update.core.IInstallHandler 34 * @since 2.0 35 */ 36 public interface IInstallHandlerEntry extends IAdaptable { 37 38 /** 39 * Returns optional URL used for browser-triggered installation handling. 40 * 41 * @return url 42 * @since 2.0 43 */ 44 public URL getURL(); 45 46 /** 47 * Returns optional name of a library containing the install 48 * handler classes. If specified, the referenced library 49 * must be contained in the feature archive. 50 * 51 * @return install handler library name 52 * @since 2.0 53 */ 54 public String getLibrary(); 55 56 /** 57 * Returns install handler name. 58 * It is interpreted depending on the value of the library 59 * specification. If library is not specified, the name 60 * is intepreted as an identifier of a "global" install 61 * handler registered in the <code>org.eclipse.update.core.installHandlers</code> 62 * extension point. If library is specified, the name is interpreted 63 * as a fully qualified name of a class contained in the 64 * library. In both cases, the resulting class must 65 * implement IInstallHandler. The class is dynamically loaded and 66 * called at specific points during feature processing. 67 * The handler has visibility to the API classes from the update plug-in, 68 * and plug-ins required by the update plugin. 69 * 70 * @see IInstallHandler 71 * @return handler name 72 * @since 2.0 73 */ 74 public String getHandlerName(); 75 76 } 77