Package org.eclipse.core.resources

# Interface IProjectNatureDescriptor

public interface IProjectNatureDescriptor
A project nature descriptor contains information about a project nature obtained from the plug-in manifest (`plugin.xml`) file.

Nature descriptors are platform-defined objects that exist independent of whether that nature's plug-in has been started. In contrast, a project nature's runtime object (`IProjectNature`) generally runs plug-in-defined code.

Since:
  2.0
See Also:
  - `IProjectNature`
  - `IWorkspace.getNatureDescriptor(String)`
Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

## Method Summary

Modifier and Type
Method
Description
`String`
`getLabel()`
Returns a displayable label for this nature.
`String`
`getNatureId()`
Returns the unique identifier of this nature.
`String[]`
`getNatureSetIds()`
Returns the identifiers of the nature sets that this nature belongs to.
`String[]`
`getRequiredNatureIds()`
Returns the unique identifiers of the natures required by this nature.
`boolean`
`isLinkingAllowed()`
Returns whether this project nature allows linked resources to be created in projects where this nature is installed.

## Method Details

### getNatureId

String getNatureId()
Returns the unique identifier of this nature.

The nature identifier is composed of the nature's plug-in id and the simple id of the nature extension. For example, if plug-in `"com.xyz"` defines a nature extension with id `"myNature"`, the unique nature identifier will be `"com.xyz.myNature"`.

Returns:
  the unique nature identifier

### getLabel

String getLabel()
Returns a displayable label for this nature. Returns the empty string if no label for this nature is specified in the plug-in manifest file.

Note that any translation specified in the plug-in manifest file is automatically applied.

Returns:
  a displayable string label for this nature, possibly the empty string

### getRequiredNatureIds

String[] getRequiredNatureIds()
Returns the unique identifiers of the natures required by this nature. Nature requirements are specified by the `"requires-nature"` element on a nature extension. Returns an empty array if no natures are required by this nature.

Returns:
  an array of nature ids that this nature requires, possibly an empty array.

### getNatureSetIds

String[] getNatureSetIds()
Returns the identifiers of the nature sets that this nature belongs to. Nature set inclusion is specified by the `"one-of-nature"` element on a nature extension. Returns an empty array if no nature sets are specified for this nature.

Returns:
  an array of nature set ids that this nature belongs to, possibly an empty array.

### isLinkingAllowed

boolean isLinkingAllowed()
Returns whether this project nature allows linked resources to be created in projects where this nature is installed.

Returns:
  boolean `true` if creating links is allowed, and `false` otherwise.
Since:
  2.1
See Also:
  - `IFolder.createLink(org.eclipse.core.runtime.IPath, int, org.eclipse.core.runtime.IProgressMonitor)`
  - `IFile.createLink(org.eclipse.core.runtime.IPath, int, org.eclipse.core.runtime.IProgressMonitor)`