package Ġno . nav . p am . e ures st illing ek sport . e ures api Ċ Ċ import Ġio . micro meter . core . instrument . Meter Registry Ċ import Ġio . micro meter . core . instrument . Tags Ċ import Ġno . nav . p am . e ures st illing ek sport . model . Converters Ċ import Ġno . nav . p am . e ures st illing ek sport . model . St illing Service Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . lang . Exception Ċ import Ġjava . util . concurrent . atomic . Atomic Integer Ċ Ċ @ Service Ċ class ĠAd ApiService (@ Autowired Ġprivate Ġval Ġstill ing Service : ĠSt illing Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Autowired Ġprivate Ġval Ġmeter Registry : ĠMeter Registry ) Ġ: ĠApi Service Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġe ures Lag Meter Ġ= Ġmeter Registry . gauge (" e ures . lag . hours ", ĠAtomicInteger ( 0 )) ĊĠĠĠ Ġprivate Ġval Ġe ures Last Poll Meter Ġ= Ġmap Of < String , ĠAtomicInteger ? >( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Opp rett et ", Ġmeter Registry . gauge (" e ures . last . poll ", ĠTags . of (" type ", Ġ" Opp rett et "), ĠAtomicInteger ( 0 ))), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" End ret ", Ġmeter Registry . gauge (" e ures . last . poll ", ĠTags . of (" type ", Ġ" End ret "), ĠAtomicInteger ( 0 ))), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" L uk ket ", Ġmeter Registry . gauge (" e ures . last . poll ", ĠTags . of (" type ", Ġ" L uk ket "), ĠAtomicInteger ( 0 )))) ĊĊĠĠĠ Ġ/** ĠK un Ġrefer an ser Ġtil Ġakt ive Ġstill ings annon ser Ġskal Ġreturn eres Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠgetAll (): ĠGetAll Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstill ings annon ser Ġ= Ġstill ing Service . h ent Alle A kt ive St illing er () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠGetAll Response ( still ings annon ser . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSt illing refer an se ( Converters . local datetime To Timestamp ( it . op prett et Ts ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter s . local datetime To Timestamp ( it . s ist End ret Ts ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . l uk ket Ts ?. let Ġ{ Ġts Ġ-> ĠConverter s . local datetime To Timestamp ( ts ) Ġ} Ġ?: Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . k ilde , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE ures Status . from Ad Status ( it . status )) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Changes ( ts : ĠLong ): ĠGet Changes Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlag In Hours Ġ= Ġ( System . currentTimeMillis () Ġ- Ġts )/ 3 6 0 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġe ures Lag Meter ?. set ( lag In Hours . toInt ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġstill ings annon ser Ġ= Ġstill ing Service . h ent Alle St illing er ( ts ) ĊĊĠĠĠĠĠĠĠ Ġval Ġopp rett et Ġ= ĠArrayList < St illing refer an se >() ĊĠĠĠĠĠĠĠ Ġval Ġend ret Ġ= ĠArrayList < St illing refer an se >() ĊĠĠĠĠĠĠĠ Ġval Ġl uk ket Ġ= ĠArrayList < St illing refer an se >() ĊĊĠĠĠĠĠĠĠ Ġstill ings annon ser . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstill ing refer an se Ġ= ĠSt illing refer an se ( Converters . local datetime To Timestamp ( it . op prett et Ts ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter s . local datetime To Timestamp ( it . s ist End ret Ts ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . l uk ket Ts ?. let Ġ{ Ġts Ġ-> ĠConverter s . local datetime To Timestamp ( ts ) Ġ} Ġ?: Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . k ilde , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE ures Status . from Ad Status ( it . status )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . l uk ket Ts Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl uk ket . add ( st illing refer an se ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( st illing refer an se . creation Timestamp Ġ== Ġstill ing refer an se . last Modification Timestamp ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopp rett et . add ( st illing refer an se ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend ret . add ( st illing refer an se ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġe ures Last Poll Meter [" Opp rett et "] ?. set ( op prett et . size ) ĊĠĠĠĠĠĠĠ Ġe ures Last Poll Meter [" End ret "] ?. set ( end ret . size ) ĊĠĠĠĠĠĠĠ Ġe ures Last Poll Meter [" L uk ket "] ?. set ( l uk ket . size ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠGet Changes Response ( op prett et , Ġend ret , Ġl uk ket ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Details ( refer an ser Ġ: ĠList < String >): ĠGet Details Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstill ings annon ser Ġ= Ġstill ing Service . h ent Still ings annon ser ( refer an ser ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠGet Details Response ( still ings annon ser . associate By ({ Ġit . still ings ann onse Metadata . id Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ v Details ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreference Ġ= Ġit . still ings ann onse Metadata . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġit . still ings ann onse Metadata . k ilde , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠE ures Status . from Ad Status ( it . still ings ann onse Metadata . status ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġto XML ( it . ad . convertTo Position Opening ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreation Timestamp Ġ= ĠConverter s . local datetime To Timestamp ( it . still ings ann onse Metadata . op prett et Ts ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Modification Timestamp Ġ= ĠConverter s . local datetime To Timestamp ( it . still ings ann onse Metadata . s ist End ret Ts ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclosing Timestamp Ġ= Ġit . still ings ann onse Metadata . l uk ket Ts ?. let Ġ{ Ġts Ġ-> ĠConverter s . local datetime To Timestamp ( ts ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto XML ( position Opening : ĠPosition Opening ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠH r xml Serializer . serialize ( position Opening ) ĊĠĠĠ Ġ} Ċ } ĊĊ