package Ġcom . github . pro log db . storage Ċ Ċ import Ġcom . github . pro log db . storage . fact . Persistence ID Ċ import Ġjava . io . IOException Ċ Ċ /** ĠThrow n Ġfor Ġall Ġstorage Ġrelated Ġerrors Ġ*/ Ċ open Ġclass ĠStorage Exception ( message : ĠString , Ġcause : ĠThrowable ? Ġ= Ġnull ) Ġ: ĠIOException ( message , Ġcause ) Ċ Ċ class ĠOut Of Storage Memory Exception ( message : ĠString , Ġcause : ĠThrowable ? Ġ= Ġnull ) Ġ: ĠStorage Exception ( message , Ġcause ) Ċ Ċ /** Ċ Ġ* ĠThrow n Ġwhen Ġa Ġstorage Ġimplementation Ġis Ġrequested Ġthat Ġis Ġnot Ġknown / found Ġor Ġnone Ġof Ġthe Ċ Ġ* Ġknown / found Ġstorage Ġimplementations Ġfulfill s Ġthe Ġrequirements Ġof Ġthe Ġrequest . Ċ Ġ*/ Ċ class ĠNoSuch Storage Implementation Exception ( message : ĠString , Ġcause : ĠThrowable ? Ġ= Ġnull ) Ġ: ĠStorage Exception ( message , Ġcause ) Ċ Ċ class ĠInvalid Persistence ID Exception ( val Ġinvalid ID : ĠPersistence ID , Ġmessage : ĠString , Ġcause : ĠThrowable ? Ġ= Ġnull ) Ġ: ĠStorage Exception ( message , Ġcause ) Ġ{ ĊĠĠĠ Ġconstructor ( invalid ID : ĠPersistence ID ) Ġ: Ġthis ( invalid ID , Ġ" Got Ġinvalid Ġpersistence ĠID Ġ${ invalid ID . toString ( 1 6 )} ") Ċ } Ċ Ċ class ĠRecord Too Large Exception ( val Ġactual Size : ĠLong , Ġval Ġmaximum Size : ĠLong , Ġcause : ĠThrowable ? Ġ= Ġnull ) Ġ: ĠStorage Exception (" This Ġrecord Ġis Ġtoo Ġlarge Ġto Ġbe Ġstored : Ġsize Ġis Ġ$ actual Size , Ġmaximum Ġpossible / allowed Ġis Ġ$ maximum Size Ġbytes ", Ġcause )