package Ġnet . nem eros a . on track . extension . git . service Ċ Ċ import Ġnet . nem eros a . on track . common . Time Ċ import Ġnet . nem eros a . on track . extension . git . Git Config Properties Ċ import Ġnet . nem eros a . on track . extension . git . model . Git PullRequest Ċ import Ġnet . nem eros a . on track . model . structure . Branch Ċ import Ġnet . nem eros a . on track . model . structure . Entity DataService Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġjava . time . LocalDateTime Ċ Ċ @ Component Ċ class ĠDefault Git PullRequest Cache ( ĊĠĠĠ Ġprivate Ġval Ġentity DataService : ĠEntity DataService , ĊĠĠĠ Ġprivate Ġval Ġgit Config Properties : ĠGit Config Properties , Ċ ) Ġ: ĠGit PullRequest Cache Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Branch PullRequest ( branch : ĠBranch , Ġpr Provider : Ġ() Ġ-> ĠGit PullRequest ?): ĠGit PullRequest ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( git Config Properties . pull Requests . cache . enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpr Provider () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠTime . now () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGets Ġany Ġexisting ĠPR Ġfor Ġthe Ġbranch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpr Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity DataService . retrieve ( branch , ĠGit PullRequest :: class . java . name , ĠStored Git PullRequest :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( pr Ġ!= Ġnull Ġ&& Ġpr . expiration Time Ġ> Ġnow ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpr . pr ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġre loaded Pr Ġ= Ġpr Provider () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre loaded Pr ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity DataService . store ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbranch , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGit PullRequest :: class . java . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStored Git PullRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpr Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpiration Time Ġ= Ġnow Ġ+ Ġgit Config Properties . pull Requests . cache . duration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInternal Ġstorage Ġincluding Ġregistration Ġtime . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠStored Git PullRequest ( ĊĠĠĠĠĠĠĠ Ġval Ġpr : ĠGit PullRequest , ĊĠĠĠĠĠĠĠ Ġval Ġexpiration Time : ĠLocalDateTime , ĊĠĠĠ Ġ) Ċ Ċ }