Package org.eclipse.core.commands

## Interface IObjectWithState

All Known Implementing Classes:
  `AbstractHandlerWithState`, `Command`

    public interface IObjectWithState

An object that holds zero or more state objects. This state information can be shared between different instances of `IObjectWithState`.

Clients may implement, but must not extend this interface.

Since:
  3.2
See Also:
  `AbstractHandlerWithState`

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `addState​(String id, State state)` Adds state to this object.
`State` `getState​(String stateId)` Gets the state with the given id.
`String[]` `getStateIds()` Gets the identifiers for all of the state associated with this object.
`void` `removeState​(String stateId)` Removes state from this object.

### Method Detail

#### addState

    void addState​(String id,
                  State state)

Adds state to this object.

Parameters:
  `id` - The identifier indicating the type of state being added; must not be `null`.
  `state` - The new state to add to this object; must not be `null`.

#### getState

    State getState​(String stateId)

Gets the state with the given id.

Parameters:
  `stateId` - The identifier of the state to retrieve; must not be `null`.
Returns:
  The state; may be `null` if there is no state with the given id.

#### getStateIds

    String[] getStateIds()

Gets the identifiers for all of the state associated with this object.

Returns:
  All of the state identifiers; may be empty, but never `null`.

#### removeState

    void removeState​(String stateId)

Removes state from this object.

Parameters:
  `stateId` - The id of the state to remove from this object; must not be `null`.