com.r3corda.core.contracts.clauses / GroupClause

# GroupClause

`interface GroupClause<in S : ContractState, in T : Any> : Clause, GroupVerify<S, T>`

### Inherited Properties

ifMatched | `abstract val ifMatched: MatchBehaviour` Behaviour if this clause is not matches
ifNotMatched | `abstract val ifNotMatched: MatchBehaviour` Behaviour if this clause is matched
requiredCommands | `abstract val requiredCommands: Set<Class<out CommandData>>` Classes for commands which must ALL be present in transaction for this clause to be triggered

### Inheritors

AbstractConserveAmount | `abstract class AbstractConserveAmount<S : FungibleAsset<T>, T : Any> : GroupClause<S, Issued<T>>` Standardised clause for checking input/output balances of fungible assets. Requires that a Move command is provided, and errors if absent. Must be the last clause under a grouping clause; errors on no-match, ends on match.
AbstractGroupClause | `abstract class AbstractGroupClause : GroupClause<State, Issued<Terms>>`
AbstractIRSClause | `abstract class AbstractIRSClause : GroupClause<State, UniqueIdentifier>` Common superclass for IRS contract clauses, which defines behaviour on match/no-match, and provides helper functions for the clauses.
AbstractIssue | `abstract class AbstractIssue<in S : ContractState, T : Any> : GroupClause<S, Issued<T>>` Standard issue clause for contracts that issue fungible assets.
NoZeroSizedOutputs | `open class NoZeroSizedOutputs<in S : FungibleAsset<T>, T : Any> : GroupClause<S, Issued<T>>` Clause for fungible asset contracts, which enforces that no output state should have a balance of zero.
SetLifecycle | `class SetLifecycle<P> : GroupClause<State<P>, Issued<Terms<P>>>` Obligation-specific clause for changing the lifecycle of one or more states.
Settle | `class Settle<P> : GroupClause<State<P>, Issued<Terms<P>>>` Obligation-specific clause for settling an outstanding obligation by witnessing change of ownership of other states to fulfil
VerifyLifecycle | `class VerifyLifecycle<P> : SingleClause, GroupClause<State<P>, Issued<Terms<P>>>` Obligation-specific clause for verifying that all states are in normal lifecycle. In a group clause set, this must be run after any lifecycle change clause, which is the only clause that involve non-standard lifecycle states on input/output.