/*
* Copyright (c) OSGi Alliance (2004, 2013). All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.osgi.service.packageadmin;
import org.osgi.framework.Bundle;
import org.osgi.framework.Version;
A required bundle.
Objects implementing this interface are created by the Package Admin service.
The term required bundle refers to a resolved bundle that has a bundle
symbolic name and is not a fragment. That is, a bundle that may be required
by other bundles. This bundle may or may not be currently required by other
bundles.
The information about a required bundle provided by this object may change. A RequiredBundle
object becomes stale if an exported package of the bundle it references has been updated or removed as a result of calling PackageAdmin.refreshPackages()
). If this object becomes stale, its getSymbolicName()
and getVersion()
methods continue to return their original values, isRemovalPending()
returns true, and getBundle()
and getRequiringBundles()
return null
.
Author: $Id: 08ab9c1a6f4a9af2060293d2c2972e4e07e2a238 $ Since: 1.2 @ThreadSafe @noimplement Deprecated: The PackageAdmin service has been replaced by the
org.osgi.framework.wiring
package.
/**
* A required bundle.
*
* Objects implementing this interface are created by the Package Admin service.
*
* <p>
* The term <i>required bundle</i> refers to a resolved bundle that has a bundle
* symbolic name and is not a fragment. That is, a bundle that may be required
* by other bundles. This bundle may or may not be currently required by other
* bundles.
*
* <p>
* The information about a required bundle provided by this object may change. A
* {@code RequiredBundle} object becomes stale if an exported package of
* the bundle it references has been updated or removed as a result of calling
* {@code PackageAdmin.refreshPackages()}).
*
* If this object becomes stale, its {@code getSymbolicName()} and
* {@code getVersion()} methods continue to return their original values,
* {@code isRemovalPending()} returns true, and {@code getBundle()}
* and {@code getRequiringBundles()} return {@code null}.
*
* @since 1.2
* @ThreadSafe
* @noimplement
* @deprecated The PackageAdmin service has been replaced by the
* <code>org.osgi.framework.wiring</code> package.
* @author $Id: 08ab9c1a6f4a9af2060293d2c2972e4e07e2a238 $
*/
public interface RequiredBundle {
Returns the symbolic name of this required bundle.
Returns: The symbolic name of this required bundle.
/**
* Returns the symbolic name of this required bundle.
*
* @return The symbolic name of this required bundle.
*/
public String getSymbolicName();
Returns the bundle associated with this required bundle.
Returns: The bundle, or null
if this RequiredBundle
object has become stale.
/**
* Returns the bundle associated with this required bundle.
*
* @return The bundle, or {@code null} if this
* {@code RequiredBundle} object has become stale.
*/
public Bundle getBundle();
Returns the bundles that currently require this required bundle.
If this required bundle is required and then re-exported by another
bundle then all the requiring bundles of the re-exporting bundle are
included in the returned array.
Returns: An array of bundles currently requiring this required bundle, or null
if this RequiredBundle
object has become stale. The array will be empty if no bundles require this required package.
/**
* Returns the bundles that currently require this required bundle.
*
* <p>
* If this required bundle is required and then re-exported by another
* bundle then all the requiring bundles of the re-exporting bundle are
* included in the returned array.
*
* @return An array of bundles currently requiring this required bundle, or
* {@code null} if this {@code RequiredBundle} object
* has become stale. The array will be empty if no bundles require
* this required package.
*/
public Bundle[] getRequiringBundles();
Returns the version of this required bundle.
Returns: The version of this required bundle, or Version.emptyVersion
if no version information is available.
/**
* Returns the version of this required bundle.
*
* @return The version of this required bundle, or
* {@link Version#emptyVersion} if no version information is
* available.
*/
public Version getVersion();
Returns true
if the bundle associated with this RequiredBundle
object has been updated or uninstalled. Returns: true
if the required bundle has been updated or uninstalled, or if the RequiredBundle
object has become stale; false
otherwise.
/**
* Returns {@code true} if the bundle associated with this
* {@code RequiredBundle} object has been updated or uninstalled.
*
* @return {@code true} if the required bundle has been updated or
* uninstalled, or if the {@code RequiredBundle} object has
* become stale; {@code false} otherwise.
*/
public boolean isRemovalPending();
}