package Ġtech . k zen . lib . common . model . definition Ċ Ċ import Ġtech . k zen . lib . common . model . locate . Object Location Map Ċ import Ġtech . k zen . lib . common . model . locate . Object Reference Host Ċ import Ġtech . k zen . lib . common . model . structure . Graph Structure Ċ import Ġtech . k zen . lib . common . service . context . Graph Def iner ĊĊ Ċ data Ġclass ĠGraph Definition Attempt ( ĊĠĠĠ Ġval Ġobject Definitions : ĠObject Location Map < Object Definition >, ĊĠĠĠ Ġval Ġfailures : ĠObject Location Map < Object Definition Failure >, ĊĠĠĠ Ġval Ġgraph Structure : ĠGraph Structure Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġsuccessful (): ĠGraph Definition Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGraph Definition ( object Definitions , Ġgraph Structure ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġtrans itive Successful (): ĠGraph Definition Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfailed Object Locations Ġ= Ġfailures . values . keys . to Mutable Set () ĊĠĠĠĠĠĠĠ Ġvar Ġopen Ġ= Ġobject Definitions . values ĊĊĠĠĠĠĠĠĠ Ġvar Ġterminated Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġwhile Ġ(! Ġterminated ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġterminated Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( e Ġin Ġopen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠObject Reference Host . of Location ( e . key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( object Reference Ġin Ġe . value . references ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Graph Def iner . bootstrap Objects . object Instances . locate Optional ( object Reference ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= Ġobject Definitions . locate Optional ( object Reference , Ġhost ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( location Ġ== Ġnull Ġ|| Ġfailed Object Locations . contains ( location )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfailed Object Locations . add ( e . key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Ġ= Ġopen . remove ( e . key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġterminated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠGraph Definition ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObject Location Map ( open ), Ġgraph Structure ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġhas Errors (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfailures . values . isNotEmpty () ĊĠĠĠ Ġ} Ċ }