/* Ċ Ġ* Ġ ĠCopyright Ġ( C ) Ġ 2 0 1 7 ĠJ os Ã© ĠRo berto Ġde ĠA ra Ãº jo ĠJ Ãºn ior Ċ Ġ* Ċ Ġ* Ġ Ġ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 . Ċ Ġ*/ Ċ Ċ package Ġorg . plate stack . api . plugin Ċ Ċ import Ġorg . plate stack . api . plugin . version . Version Range Ċ import Ġorg . plate stack . structure . immutable . ImmutableList Ċ import Ġorg . plate stack . structure . immutable . to ImmutableList Ċ Ċ data Ġclass ĠRelation ( val Ġtype : ĠRelation Type , Ġval Ġid : ĠString , Ġval Ġnamespace : ĠString , Ġval Ġversions : ĠImmutableList < Version Range >) Ġ{ ĊĠĠĠ Ġconstructor ( type : ĠRelation Type , Ġid : ĠString , Ġnamespace : ĠString , Ġversions : ĠIterable < Version Range >): Ġthis ( type , Ġid , Ġnamespace , Ġversions . to ImmutableList ()) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( versions . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" versions Ġcan 't Ġbe Ġempty .") Ġ// TODO ĠAdd Ġsupport Ġfor Ġempty Ġversion Ġrange ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġfrom ( annotation : Ġorg . plate stack . api . plugin . annotation . Relation ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRelation ( annotation . type , Ġannotation . id . value , Ġannotation . id . namespace , Ġannotation . versions . map Ġ{ ĠVersion Range . from ( it ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġcontains ( metadata : ĠP late Metadata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġnamespace Ġ== Ġ" plate " Ġ&& Ġid Ġ== Ġmetadata . id Ġ&& Ġversions . any Ġ{ Ġmetadata . version Ġin Ġit Ġ} Ċ } Ċ