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
/******************************************************************************* * 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 StateObjectFactory should be used to construct instances.

Since:3.1
@noimplementThis interface is not intended to be implemented by clients.
/** * This class represents a base description object for a state. All description * objects in a state have a name and a version. * <p> * This interface is not intended to be implemented by clients. The * {@link StateObjectFactory} should be used to construct instances. * </p> * @since 3.1 * @noimplement This interface is not intended to be implemented by clients. */
public interface BaseDescription {
Returns the name.
Returns:the name
/** * Returns the name. * @return the name */
public String getName();
Returns the version.
Returns:the version
/** * Returns the version. * @return the version */
public Version getVersion();
Returns the bundle which supplies this base description
Returns:the bundle which supplies this base description
Since:3.2
/** * 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.
Returns:the known directives declared with the description
Since:3.7
/** * 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<String, String> 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.
Returns:the attributes declared with the description
Since:3.7
/** * 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<String, Object> 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.
Returns:the capability represented by this base description
Since:3.7
/** * Returns the capability represented by this description. * Some descriptions types may not be able to represent * a capability. In such cases <code>null</code> 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.
Returns:the user object associated to this description, or null
Since:3.8
/** * Returns the user object associated to this description, or * <code>null</code> if none exists. * * @return the user object associated to this description, * or <code>null</code> * @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.
Params:
  • userObject – an arbitrary object provided by the user, or null
Since:3.8
/** * Associates a user-provided object to this description, or * removes an existing association, if <code>null</code> is provided. The * provided object is not interpreted in any ways by this * description. * * @param userObject an arbitrary object provided by the user, or * <code>null</code> * @since 3.8 */
public void setUserObject(Object userObject); }