package Ġtw ink le . agri ledger . states Ċ Ċ import Ġtw ink le . agri ledger . contracts . Asset Contract Ċ import Ġnet . cord a . core . contracts .* Ċ import Ġnet . cord a . core . identity . Abstract Party Ċ import Ġnet . cord a . core . identity . Party Ċ import Ġnet . cord a . core . schemas . Mapped Schema Ċ import Ġnet . cord a . core . schemas . Persistent State Ċ import Ġnet . cord a . core . schemas . Queryable State Ċ import Ġnet . cord a . core . serialization . C ord a Serializable Ċ import Ġtw ink le . agri ledger . schema . O bl igation Schema V 1 Ċ import Ġjava . util .* Ċ Ċ // Ġ********* Ċ // Ġ* ĠState Ġ* Ċ // Ġ********* Ċ @ Bel ongsTo Contract ( Asset Contract :: class ) Ċ data Ġclass ĠO bl igation State ( // val Ġasset : ĠStatic Pointer < Asset Container State >, ĊĠĠĠĠĠĠĠ Ġval Ġoblig ation : ĠO bl igation Properties , ĊĠĠĠĠĠĠĠ Ġval Ġphysical Container ID : ĠUUID , ĊĠĠĠĠĠĠĠ Ġval Ġlinear Id : ĠUnique Identifier ) Ġ: ĠQuery able State Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġgenerate Mapped Object ( schema : ĠM apped Schema ): ĠPersistent State Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( schema ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠO bl igation Schema V 1 Ġ-> ĠO bl igation Schema V 1 . Persistent O bl igation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . physical Container ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . linear Id . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Un re cogn ised Ġschema Ġ$ schema ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsupported Schemas (): ĠIterable < Mapped Schema > Ġ= ĠlistOf ( O bl igation Schema V 1 ) ĊĊĠĠĠ Ġoverride Ġval Ġparticipants : ĠList < Abstract Party > Ġ= ĠlistOf ( ob lig ation . owner , Ġoblig ation . bene ficiary ) ĊĊĠĠĠ Ġfun Ġwith New Physical Container ID ( physical Container ID : ĠUUID ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy ( physical Container ID Ġ= Ġphysical Container ID ) Ċ } Ċ Ċ @ C ord a Serializable Ċ data Ġclass ĠO bl igation Properties ( val Ġowner : ĠParty , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbene ficiary : ĠParty , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount : ĠAmount < Currency >) Ċ