package Ġcom . k od atos . shared . domain . common Ċ Ċ sealed Ġclass ĠResult < out ĠT , Ġout ĠE > Ġ{ ĊĠĠĠ Ġopen Ġclass ĠSUCCESS < T >( val Ġvalue : ĠT ) Ġ: ĠResult < T , ĠNothing >() ĊĠĠĠ Ġopen Ġclass ĠERROR < E >( val Ġerror : ĠE ) Ġ: ĠResult < Nothing , ĠE >() ĊĊĠĠĠ Ġfun Ġis Success () Ġ= Ġthis Ġis ĠSUCCESS Ċ } Ċ Ċ fun Ġ< T > ĠResult < T , Ġ* >. get OrNull (): ĠT ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this Ġis ĠResult . SUCCESS ) ĊĠĠĠĠĠĠĠ Ġthis . value ĊĠĠĠ Ġelse Ġnull Ċ } Ċ Ċ fun Ġ< T , ĠE > ĠResult < T , ĠE >. getOrElse ( provider : Ġ( E ) Ġ-> ĠT ?): ĠT ? Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠResult . SUCCESS Ġ-> Ġthis . value ĊĠĠĠĠĠĠĠ Ġis ĠResult . ERROR Ġ-> Ġprovider ( this . error ) ĊĠĠĠ Ġ} Ċ } Ċ