net.corda.contracts.asset / Obligation / Clauses / SetLifecycle

# SetLifecycle

`class SetLifecycle<P> : Clause<State<P>, Commands, Issued<Terms<P>>>`

Obligation-specific clause for changing the lifecycle of one or more states.

### Constructors

<init> | `SetLifecycle()` Obligation-specific clause for changing the lifecycle of one or more states.

### Properties

requiredCommands | `val requiredCommands: Set<Class<out CommandData>>` Determine whether this clause runs or not

### Functions

toString | `fun toString(): String`
verify | `fun verify(tx: TransactionForContract, inputs: List<State<P>>, outputs: List<State<P>>, commands: List<AuthenticatedObject<Commands>>, groupingKey: Issued<Terms<P>>?): Set<Commands>` Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException if any matched.