/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 1 9 ĠHERE ĠEurope ĠB . V . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ* ĠLicense - Filename : ĠLICENSE Ċ Ġ*/ Ċ Ċ package Ġcom . here . ort . model Ċ Ċ import Ġcom . here . ort . utils . Sorted Set Comparator Ċ Ċ import Ġjava . util . Sorted Set Ċ Ċ // ĠTODO : ĠThis Ġclass Ġcurrently Ġco - exists Ġwith Ġthe Ġsingular Ġform Ġclass Ġ[ Copyright Finding ] Ġwhich Ġcan Ġbe Ġconfusing . Ċ // ĠThe Ġsingular Ġclasses Ġ[ Copyright Finding ] Ġand Ġ[ License Finding ] Ġare Ġthe Ġmodel Ġof Ġthe Ġscanner Ġmodule Ġwhile Ġthe Ġplural Ċ // Ġform Ġones Ġare Ġthe Ġmodel Ġof Ġthe Ġoutput Ġof Ġ[ com . here . ort . model . utils . Find ings Matcher ], Ġthus Ġinstances Ġof Ċ // Ġ[ Copyright Find ings ] Ġare Ġused Ġonly Ġwhen Ġassociated Ġwith Ġ( or Ġrather Ġreferenced Ġby ) Ġ[ License Find ings ]. Ċ // ĠThe Ġoutput Ġformat Ġof Ġ[ com . here . ort . model . utils . Find ings Matcher ] Ġneeds Ġto Ġchange Ġas Ġit Ġmis ses Ġthe Ġassociation Ċ // Ġbetween Ġcopyright Ġfinding Ġand Ġthe Ġactual Ġtext Ġlocation Ġof Ġthe Ġmatched Ġlicense Ġfinding . ĠFurther Ġthe Ġway Ġcopyright Ċ // Ġfindings Ġare Ġmatched Ġto Ġroot Ġlicenses Ġmight Ġalso Ġneed Ġto Ġchange Ġwhich Ġin Ġturn Ġmay Ġalso Ġrequire Ġchanging Ġthese Ġplural Ċ // Ġform Ġclasses . ĠDue Ġto Ġthe Ġabove Ġit Ġseems Ġto Ġmake Ġsense Ġto Ġdefer Ġthe Ġclar ification Ġof Ġsingular Ġvs . Ġplural Ġform Ċ // Ġcopyright Ġfinding Ġclasses Ġuntil Ġthe Ġmentioned Ġimprovements Ġto Ġthe Ġmatching Ġhave Ġbeen Ġapplied . Ċ data Ġclass ĠCopyright Find ings ( ĊĠĠĠ Ġval Ġstatement : ĠString , ĊĠĠĠ Ġval Ġlocations : ĠSorted Set < Text Location > Ċ ) Ġ: ĠComparable < Copyright Find ings > Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠSORT ED _ SET _ COMP AR ATOR Ġ= ĠSorted Set Comparator < Copyright Find ings >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠCopyright Find ings ) Ġ= ĊĠĠĠĠĠĠĠ Ġcompare Values By ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġother , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompare By ( Copyright Find ings :: statement ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then By ( Text Location . SORT ED _ SET _ COMP AR ATOR , ĠCopyright Find ings :: locations ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġit Ġ} Ċ } Ċ