blob: 3f533940430661dab35fb2f46f475438fa4bb1ad [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2006 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.core.runtime;
import org.osgi.framework.Bundle;
/**
* Bundle groups represent a logical collection of plug-ins (aka bundles). Bundle
* groups do not contain their constituents but rather collect them together under
* a common label. The main role of a bundle group is to report to the system
* (e.g., the About dialog) what bundles have been installed. They are not intended
* for use in managing the set of bundles they represent.
* <p>
* Since the bulk of the branding related information is specific to the consumer,
* bundle groups also carry an arbitrary set of properties. The valid set of
* key-value pairs and their interpretation defined by the consumer in the
* target environment.
* </p><p>
* The Eclipse UI is the typical consumer of bundle groups and defines various
* property keys that it will use, for example, to display About information. See
* <code>org.eclipse.ui.branding.IBundleGroupConstants</code>.
* </p>
* @see IBundleGroupProvider
* @since 3.0
*/
public interface IBundleGroup {
/**
* Returns the identifier of this bundle group. Bundle groups are uniquely identified by the combination of
* their identifier and their version.
*
* @see #getVersion()
* @return the identifier for this bundle group
*/
public String getIdentifier();
/**
* Returns the human-readable name of this bundle group.
*
* @return the human-readable name
*/
public String getName();
/**
* Returns the version of this bundle group. Bundle group version strings have the same format as
* bundle versions (i.e., major.minor.service.qualifier). Bundle groups are uniquely identified
* by the combination of their identifier and their version.
*
* @see #getIdentifier()
* @return the string form of this bundle group's version
*/
public String getVersion();
/**
* Returns a text description of this bundle group.
*
* @return text description of this bundle group
*/
public String getDescription();
/**
* Returns the name of the provider of this bundle group.
*
* @return the name of the provider or <code>null</code> if none
*/
public String getProviderName();
/**
* Returns a list of all bundles supplied by this bundle group.
*
* @return the bundles supplied by this bundle group
*/
public Bundle[] getBundles();
/**
* Returns the property of this bundle group with the given key.
* <code>null</code> is returned if there is no such key/value pair.
*
* @param key the name of the property to return
* @return the value associated with the given key or <code>null</code> if none
*/
public String getProperty(String key);
}