/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 - 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 . glue co di um . generator . java Ċ Ċ import Ġcom . here . glue co di um . model . lime . L ime Element Ċ import Ġcom . here . glue co di um . model . lime . L ime Named Element Ċ import Ġcom . here . glue co di um . model . lime . L ime Path Ċ import Ġcom . here . glue co di um . model . lime . L ime Type Ċ import Ġcom . here . glue co di um . model . lime . L ime Types Collection Ċ Ċ class ĠJava Name Resolver ( ĊĠĠĠ Ġprivate Ġval Ġname Rules : ĠJava Name Rules , ĊĠĠĠ Ġprivate Ġval Ġlime Reference Map : ĠMap < String , ĠL ime Element > Ċ ) Ġ{ ĊĠĠĠ Ġfun ĠgetClass Names ( lime Type : ĠL ime Type ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclassNames Ġ= Ġlime Type . path . tail . drop Last ( 1 ). map Ġ{ Ġname Rules . rule Set . getType Name ( it ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Rules . getName ( lime Type ) ĊĠĠĠĠĠĠĠ Ġval Ġcontainer Key Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠL ime Path ( lime Type . path . head , ĠlistOf ( lime Type . path . container )). toString () ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlime Reference Map [ container Key ] Ġis ĠL ime Types Collection Ġ-> ĠclassNames . drop ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠclassNames ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetName ( lime Element : ĠL ime Named Element ) Ġ= Ġname Rules . getName ( lime Element ) Ċ } Ċ