corda / net.corda.core.contracts / LinearPointer

LinearPointer

class LinearPointer<T : LinearState> : StatePointer<T>

LinearPointer allows a ContractState to "point" to another LinearState creating a "many-to-one" relationship between all the states containing the pointer to a particular LinearState and the LinearState being pointed to. Using the LinearPointer is useful when one state depends on the data contained within another state that evolves independently. When using LinearPointer it is worth noting:

Constructors

<init>

LinearPointer(pointer: UniqueIdentifier, type: Class<T>)

Allows this class to be evolved through backwards compatibility with version 1 of this class.

LinearPointer(pointer: UniqueIdentifier, type: Class<T>, isResolved: Boolean = true)

LinearPointer allows a ContractState to "point" to another LinearState creating a "many-to-one" relationship between all the states containing the pointer to a particular LinearState and the LinearState being pointed to. Using the LinearPointer is useful when one state depends on the data contained within another state that evolves independently. When using LinearPointer it is worth noting:

Properties

isResolved

val isResolved: Boolean

Determines whether the state pointer should be resolved to a reference input when used in a transaction.

pointer

val pointer: UniqueIdentifier

An identifier for the ContractState that this StatePointer points to.

type

val type: Class<T>

Type of the state which is being pointed to.

Functions

equals

fun equals(other: Any?): Boolean

hashCode

fun hashCode(): Int

resolve

fun resolve(services: ServiceHub): StateAndRef<T>

Resolves a LinearPointer using the UniqueIdentifier contained in the pointer property. Returns a StateAndRef containing the latest version of the LinearState that the node calling resolve is aware of.

fun resolve(ltx: LedgerTransaction): StateAndRef<T>

Resolves a StatePointer to a StateAndRef from inside a LedgerTransaction. The intuition here is that all of the pointed-to states will be included in the transaction as reference states.

Extension Functions

contextLogger

fun Any.contextLogger(): Logger

When called from a companion object, returns the logger for the enclosing class.