package Ġch . sim as . monitor . bound ry Ċ Ċ import Ġch . sim as . monitor . control . Measurement Repository Ċ import Ġch . sim as . monitor . entity . Measurement Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Local Time Ċ import Ġjava . util . Collections Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . format . annotation . DateTime Format Ċ import Ġorg . springframework . web . bind . annotation . RequestMapping Ċ import Ġorg . springframework . web . bind . annotation . RequestParam Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ Ċ @ RestController Ċ open Ġclass ĠMeasurement Controller (@ Autowired Ġval Ġmeasurement Repository : ĠMeasurement Repository ) Ġ{ ĊĊĠĠĠ Ġ@ RequestMapping ("/ measure ments ") ĊĠĠĠ Ġfun Ġget Measure ments ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" url ", Ġrequired Ġ= Ġtrue ) Ġurl : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" max Results ", Ġrequired Ġ= Ġfalse , ĠdefaultValue Ġ= Ġ" 2 0 ") Ġmax Results : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" date From ", Ġrequired Ġ= Ġfalse ) Ġ@ DateTime Format ( pattern Ġ= Ġ" yyyy - MM - dd ") Ġdate From : ĠLocalDate ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" date To ", Ġrequired Ġ= Ġfalse ) Ġ@ DateTime Format ( pattern Ġ= Ġ" yyyy - MM - dd ") Ġdate To : ĠLocalDate ?): ĠList < Measurement > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġmeasurements Ġ= Ġmeasurement Repository . find ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Results , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( date From Ġ== Ġnull ) Ġnull Ġelse ĠLocalDateTime . of ( date From , ĠLocal Time . of ( 0 , Ġ 0 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( date To Ġ== Ġnull ) Ġnull Ġelse ĠLocalDateTime . of ( date To , ĠLocal Time . of ( 2 3 , Ġ 5 9 ))) ĊĊĠĠĠĠĠĠĠ ĠCollections . sort ( measure ments ) Ġ{ Ġo 1 , Ġo 2 Ġ-> Ġo 1 . timestamp . compareTo ( o 2 . timestamp ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmeasurements ĊĠĠĠ Ġ} Ċ } Ċ