blob: 67542786eb92a449649b1e3215d066075b20eb55 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 SAP AG
* 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:
* SAP AG - initial API and implementation
*******************************************************************************/
package org.eclipse.libra.framework.editor.core.model;
import java.util.Map;
import java.util.Set;
import org.eclipse.libra.framework.editor.core.IOSGiFrameworkAdmin;
import org.osgi.framework.Bundle;
/**
* This interface represents a bundle and its state in an OSGi framework. It is
* used by the <i>Bundle Information</i> and <i>Bundle Dependency Graph</i>
* editor parts to display the state of the represented bundle.
*
* <p>
* Objects implementing this interface are returned as a map by the
* {@link IOSGiFrameworkAdmin#getBundles()} method that is called by the editor
* parts. These objects are provided by the server runtime that implements the
* {@link IOSGiFrameworkAdmin} interface.
* </p>
*
* @noextend This interface is not intended to be extended by clients.
*
* @see IOSGiFrameworkAdmin#getBundles()
*
* @author Kaloyan Raev
*/
public interface IBundle {
/**
* Returns the unique identifier of this bundle.
*
* @return The String representation of the id number.
*
* @see Bundle#getBundleId()
*/
public String getId();
/**
* Returns the symbolic name of this bundle.
*
* @return The symbolic name of this bundle or {@code null} if this bundle
* does not have a symbolic name.
*
* @see Bundle#getSymbolicName()
*/
public String getSymbolicName();
/**
* Returns the version of this bundle.
*
* @return The String representation of the version number.
*
* @see Bundle#getVersion()
*/
public String getVersion();
/**
* Returns the current state of this bundle.
*
* @return The String representation of the state.
*
* @see Bundle#getVersion()
*/
public String getState();
/**
* Returns the location identifier of this bundle.
*
* @return The String representation of the location identifier.
*
* @see Bundle#getLocation()
*/
public String getLocation();
/**
* Returns the Manifest headers and values of this bundle.
*
* @return A {@code Map} object containing the Manifest headers and values.
* This method never returns {@code null}.
*
* @see Bundle#getHeaders()
*/
public Map<String, String> getHeaders();
/**
* Returns all packages exported by this bundle.
*
* @return A {@code Set} object containing all exported packages represented
* as {@code IPackageExport} objects. This method never returns
* {@code null}.
*
* @see IPackageExport
*/
public Set<IPackageExport> getPackageExports();
/**
* Returns the packages imported by this bundle.
*
* @return A {@code Set} object containing all imported packages represented
* as {@code IPackageImport} objects. This method never returns
* {@code null}.
*
* @see IPackageImport
*/
public Set<IPackageImport> getPackageImports();
/**
* Returns all services registered by this bundle.
*
* @return A {@code Set} object containing all registered services
* represented as {@code IServiceReference} objects. This method
* never returns {@code null}.
*
* @see Bundle#getRegisteredServices()
* @see IServiceReference
*/
public Set<IServiceReference> getRegisteredServices();
/**
* Returns all services this bundle is using.
*
* @return A {@code Set} object containing all services in use represented
* as {@code IServiceReference} objects. This method never returns
* {@code null}.
*
* @see Bundle#getServicesInUse()
* @see IServiceReference
*/
public Set<IServiceReference> getServicesInUse();
}