LedgerDSLInterpreter - corda

corda / net.corda.testing.dsl / LedgerDSLInterpreter

# LedgerDSLInterpreter

`@DoNotImplement interface LedgerDSLInterpreter<out T : TransactionDSLInterpreter> : Verifies, OutputStateLookup`

This interface defines the bare bone functionality that a Ledger DSL interpreter should implement.

TODO (Kotlin 1.1): Use type synonyms to make the type params less unwieldy

### Functions

#### _transaction | Creates and adds a transaction to the ledger. `abstract fun _transaction(transactionLabel: String?, transactionBuilder: TransactionBuilder, dsl: T.() -> EnforceVerifyOrFail): WireTransaction`
#### _tweak | Creates a local scoped copy of the ledger. `abstract fun _tweak(dsl: LedgerDSLInterpreter<T>.() -> Unit): Unit`
#### _unverifiedTransaction | Creates and adds a transaction to the ledger that will not be verified by verifies. `abstract fun _unverifiedTransaction(transactionLabel: String?, transactionBuilder: TransactionBuilder, dsl: T.() -> Unit): WireTransaction`
#### attachment | Adds an attachment to the ledger. `abstract fun attachment(attachment: InputStream): SecureHash`

### Inheritors

#### LedgerDSL | This is the class that defines the syntactic sugar of the ledger Test DSL and delegates to the contained interpreter, and what is actually used in `ledger { (...) }`. Add convenience functions here, or if you want to extend the DSL functionality then first add your primitive to LedgerDSLInterpreter and then add the convenience defaults/extension methods here. `class LedgerDSL<out T : TransactionDSLInterpreter, out L : LedgerDSLInterpreter<T>> : LedgerDSLInterpreter<TransactionDSLInterpreter>`
#### TestLedgerDSLInterpreter | `data class TestLedgerDSLInterpreter : LedgerDSLInterpreter<TestTransactionDSLInterpreter>`