# Interface BaseDescription

All Known Subinterfaces:
  `BundleDescription, ExportPackageDescription, GenericDescription, NativeCodeDescription`

public interface BaseDescription
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
Restriction:
  This interface is not intended to be implemented by clients.

## Method Summary

Modifier and Type
Method
Description
`BundleCapability`
`getCapability()`
Returns the capability represented by this description.
`Map<String,Object>`
`getDeclaredAttributes()`
Returns the attributes declared with the description.
`Map<String,String>`
`getDeclaredDirectives()`
Returns the directives declared with the description.
`String`
`getName()`
Returns the name.
`BundleDescription`
`getSupplier()`
Returns the bundle which supplies this base description
`Object`
`getUserObject()`
Returns the user object associated to this description, or `null` if none exists.
`Version`
`getVersion()`
Returns the version.
`void`
`setUserObject(Object userObject)`
Associates a user-provided object to this description, or removes an existing association, if `null` is provided.

## Method Details

### getName

String getName()
Returns the name.

Returns:
  the name

### getVersion

Version getVersion()
Returns the version.

Returns:
  the version

### getSupplier

BundleDescription getSupplier()
Returns the bundle which supplies this base description

Returns:
  the bundle which supplies this base description
Since:
  3.2

### getDeclaredDirectives

Map<String,String> getDeclaredDirectives()
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

### getDeclaredAttributes

Map<String,Object> getDeclaredAttributes()
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

### getCapability

BundleCapability getCapability()
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

### getUserObject

Object getUserObject()
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

### setUserObject

void setUserObject(Object userObject)
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.

Parameters:
  `userObject` - an arbitrary object provided by the user, or `null`
Since:
  3.8