org.eclipse.osgi.service.resolver.BaseDescription Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aspectjtools Show documentation
Show all versions of aspectjtools Show documentation
Tools from the AspectJ project
/*******************************************************************************
* Copyright (c) 2004, 2012 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.osgi.service.resolver;
import java.util.Map;
import org.osgi.framework.Version;
import org.osgi.framework.wiring.BundleCapability;
/**
* This class represents a base description object for a state. All description
* objects in a state have a name and a version.
*
* This interface is not intended to be implemented by clients. The
* {@link StateObjectFactory} should be used to construct instances.
*
* @since 3.1
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface BaseDescription {
/**
* Returns the name.
* @return the name
*/
public String getName();
/**
* Returns the version.
* @return the version
*/
public Version getVersion();
/**
* Returns the bundle which supplies this base description
* @return the bundle which supplies this base description
* @since 3.2
*/
public BundleDescription getSupplier();
/**
* Returns the directives declared with the description.
* This will return all known directives for the type of description.
* The set of directives differs for each description type.
* @return the known directives declared with the description
* @since 3.7
*/
public Map getDeclaredDirectives();
/**
* Returns the attributes declared with the description.
* This will return all known attributes for the type of description.
* The set of attributes differs for each description type.
* @return the attributes declared with the description
* @since 3.7
*/
public Map getDeclaredAttributes();
/**
* Returns the capability represented by this description.
* Some descriptions types may not be able to represent
* a capability. In such cases null
is
* returned.
* @return the capability represented by this base description
* @since 3.7
*/
public BundleCapability getCapability();
/**
* Returns the user object associated to this description, or
* null
if none exists.
*
* @return the user object associated to this description,
* or null
* @since 3.8
*/
public Object getUserObject();
/**
* Associates a user-provided object to this description, or
* removes an existing association, if null
is provided. The
* provided object is not interpreted in any ways by this
* description.
*
* @param userObject an arbitrary object provided by the user, or
* null
* @since 3.8
*/
public void setUserObject(Object userObject);
}