# Interface NativeCodeSpecification

All Superinterfaces:
  `Cloneable, VersionConstraint`

public interface NativeCodeSpecification extends VersionConstraint
This class represents a native code specification. A native code specification is different from other specification constraints which typically are resolved against suppliers provided by other bundles. A native code specification supplies it own suppliers which are matched against the platform properties at resolve time and the supplier with the best match is selected.

This interface is not intended to be implemented by clients. The `StateObjectFactory` should be used to construct instances.

Since:
  3.4
Restriction:
  This interface is not intended to be implemented by clients.

## Method Summary

Modifier and Type
Method
Description
`NativeCodeDescription[]`
`getPossibleSuppliers()`
Returns the list of possible suppliers to this native code specification.
`boolean`
`isOptional()`
Returns whether or not this native code specification is optional.

### Methods inherited from interface VersionConstraint

`getBundle, getName, getRequirement, getSupplier, getUserObject, getVersionRange, isResolved, isSatisfiedBy, setUserObject`

## Method Details

### getPossibleSuppliers

NativeCodeDescription[] getPossibleSuppliers()
Returns the list of possible suppliers to this native code specification. When this native code specification is resolved one of the possible suppliers will be selected and returned by `VersionConstraint.getSupplier()`.

Returns:
  the list of possible suppliers.

### isOptional

boolean isOptional()
Returns whether or not this native code specification is optional.

Returns:
  whether this specification is optional