org.apache.sling.provisioning.model

## Class Feature

- java.lang.Object
- - org.apache.sling.provisioning.model.Traceable
  - - org.apache.sling.provisioning.model.Commentable
    - - org.apache.sling.provisioning.model.Feature

All Implemented Interfaces:
  Comparable<Feature>

    public class Feature
    extends Commentable
    implements Comparable<Feature>

A feature is a collection of - a name - a version - variables - run modes

### Constructor Summary

Constructors
Constructor and Description
`Feature(String name)` Construct a new feature.

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `compareTo(Feature o)`
`List<Section>` `getAdditionalSections()` Get all additional sections
`List<Section>` `getAdditionalSections(String name)` Get all sections with the given name.
`String` `getName()` Get the name of the feature.
`RunMode` `getOrCreateRunMode(String[] names)` Get or create the run mode.
`RunMode` `getRunMode(String... runModes)` Find the run mode if available
`List<RunMode>` `getRunModes()` Get all run modes.
`String` `getType()` Get the feature type.
`KeyValueMap<String>` `getVariables()` Get all variables
`String` `getVersion()` Get the version of the feature.
`boolean` `isSpecial()` Special feature?
`void` `setType(String t)` Set the feature type.
`void` `setVersion(String v)` Set the version.
`String` `toString()`

### Methods inherited from class org.apache.sling.provisioning.model.Commentable

`getComment, setComment`

### Methods inherited from class org.apache.sling.provisioning.model.Traceable

`getLocation, setLocation`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### Feature

    public Feature(String name)

Construct a new feature.

Parameters:
  `name` - The feature name

### Method Detail

#### getName

    public String getName()

Get the name of the feature.

Returns:
  The name or `null` for an anonymous feature.

#### getVersion

    public String getVersion()

Get the version of the feature.

Returns:
  The version string or `null`
Since:
  1.6.0

#### isSpecial

    public boolean isSpecial()

Special feature?

Returns:
  true if the feature is special

#### getVariables

    public KeyValueMap<String> getVariables()

Get all variables

Returns:
  The set of variables

#### getRunModes

    public List<RunMode> getRunModes()

Get all run modes.

Returns:
  The list of run modes.

#### getRunMode

    public RunMode getRunMode(String... runModes)

Find the run mode if available

Parameters:
  `runModes` - The run modes or `null`
Returns:
  The feature or `null`.

#### getOrCreateRunMode

    public RunMode getOrCreateRunMode(String[] names)

Get or create the run mode.

Parameters:
  `names` - The run modes.
Returns:
  The run mode for the given run modes names.

#### getType

    public String getType()

Get the feature type.

Returns:
  The feature type.
Since:
  1.4.0

#### setVersion

    public void setVersion(String v)

Set the version.

Parameters:
  `v` - The new version
Since:
  1.6.0

#### setType

    public void setType(String t)

Set the feature type.

Parameters:
  `t` - The new type
Since:
  1.4.0

#### getAdditionalSections

    public List<Section> getAdditionalSections()

Get all additional sections

Returns:
  The list of additional sections. It might be empty.
Since:
  1.4.0

#### getAdditionalSections

    public List<Section> getAdditionalSections(String name)

Get all sections with the given name.

Parameters:
  `name` - The section name.
Returns:
  The list of sections. The list might be empty.
Since:
  1.4.0

#### compareTo

    public int compareTo(Feature o)

Specified by:
  `compareTo` in interface `Comparable<Feature>`

#### toString

    public String toString()

Overrides:
  `toString` in class `Commentable`