package Ġcom . mapbox . maps . extension . style . types Ċ Ċ import Ġandroidx . annotation . Keep Ċ import Ġcom . mapbox . bindgen . Value Ċ import Ġcom . mapbox . maps . extension . style . sources . generated . Geo Json Source Ċ import Ġcom . mapbox . maps . extension . style . sources . generated . Vector Source Ċ Ċ /** Ċ Ġ* ĠHold s Ġa Ġproperty Ġtype Ġto Ġpromote Ġa Ġspecific Ġfeature Ġfor Ġfeature Ġstate ĠAPI . Ċ Ġ* Ċ Ġ* Ġ@ param Ġsource Id Ġsource Ġlayer Ġid Ġof Ġthe Ġfeature , Ġeither Ġsource Ġ[ Geo Json Source ] Ġor Ġ[ Vector Source ]. Ċ Ġ* Ġ@ param ĠpropertyName Ġfeature Ġproperty Ġname . Ċ Ġ* Ċ Ġ* ĠFor Ġmore Ġinformation Ġsee Ġ[ The Ġonline Ġdocumentation ]( https :// docs . mapbox . com / mapbox - gl - js / style - spec / types /# prom ote Id ). Ċ Ġ*/ Ċ @ Keep Ċ data Ġclass ĠProm ote Id Ġ@ Jvm Over loads Ġconstructor ( ĊĠ Ġval ĠpropertyName : ĠString , ĊĠ Ġval Ġsource Id : ĠString ? Ġ= Ġnull Ċ ) Ġ{ ĊĠ Ġinternal Ġfun Ġto Value (): ĠValue Ġ{ ĊĠĠĠ Ġsource Id ?. let Ġ{ ĊĠĠĠĠĠ Ġreturn ĠValue ( hash Map Of ( source Id Ġto ĠValue ( propertyName ))) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠValue ( propertyName ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠStatic Ġvariables Ġand Ġmethods . ĊĠĠ Ġ*/ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstruct Ġa Ġ[ Prom ote Id ] Ġobject Ġfrom Ġa ĠProperty Ġreturned Ġfrom Ġthe Ġcore . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠpropertyName Ġfeature Ġproperty Ġname . ĊĠĠĠĠ Ġ* ĠCan Ġbe Ġeither Ġof Ġtype Ġ[ String ] Ġor Ġ[ HashMap ] Ġof Ġ< String , String > ĊĠĠĠĠ Ġ* ĠThrows Ġ[ RuntimeException ] Ġexception Ġif Ġcouldn 't Ġconstruct Ġto Ġ[ Prom ote Id ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinternal Ġfun Ġfrom Property ( propertyName : ĠAny ) Ġ= Ġwhen Ġ( propertyName ) Ġ{ ĊĠĠĠĠĠ Ġis ĠString Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ ĠProm ote Id ( propertyName ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis ĠHashMap < *, Ġ*> Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġproperty Map Ġ= ĠpropertyName Ġas ĠHashMap < String , ĠString > ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ(! property Map . keys . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġproperty Map . keys . iterator (). next () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProm ote Id ( property Map [ key ] Ġ?: Ġ"", Ġkey ) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProm ote Id ("") ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException ("$ propertyName Ġmust Ġbe Ġin Ġthe Ġformat ĠHashMap < String , String >") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠUnsupportedOperationException (" Wr apping Ġ${ propertyName :: class . java . simple Name } Ġto ĠProm ote Id Ġis Ġnot Ġsupported .") ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }