package Ġcom . tester um . step _ rdb ms _ util . jdbc _ transactions . exec Ċ Ċ import Ġcom . tester um . common _ jdk . toString With Stack trace Ċ import Ġjavax . annotation . concurrent . Immutable Ċ Ċ @ Immutable Ċ class ĠExecution Result < out ĠR > Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġsucceeded : ĠBoolean , ĊĠĠĠ Ġval Ġresult : ĠR ?, ĊĠĠĠ Ġval Ġexception : ĠException ? Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġ< R > Ġsuccess (): ĠExecution Result < R > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠExecution Result ( succeeded Ġ= Ġtrue , Ġresult Ġ= Ġnull , Ġexception Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< R > Ġsuccess ( result : ĠR ?): ĠExecution Result < R > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠExecution Result ( succeeded Ġ= Ġtrue , Ġresult Ġ= Ġresult , Ġexception Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< R > Ġfailure ( exception : ĠException ): ĠExecution Result < R > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠExecution Result ( succeeded Ġ= Ġfalse , Ġresult Ġ= Ġnull , Ġexception Ġ= Ġexception ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsucceeded (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . succeeded ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfailed (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ! succeeded () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" R is ky Action Execution Result {" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" result =$ result " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġsucceeded =$ succeeded " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġexception =${ this . exception . toString With Stack trace () }" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" }" ĊĠĠĠ Ġ} Ċ Ċ } Ċ