/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠGoogle ĠLLC . Ċ Ġ* Ċ Ġ* ĠThis Ġcode Ġmay Ġonly Ġbe Ġused Ġunder Ġthe ĠBSD Ġstyle Ġlicense Ġfound Ġat Ċ Ġ* Ġhttp :// polymer . github . io / LICENSE . txt Ċ Ġ* Ċ Ġ* ĠCode Ġdistributed Ġby ĠGoogle Ġas Ġpart Ġof Ġthis Ġproject Ġis Ġalso Ġsubject Ġto Ġan Ġadditional ĠIP Ġrights Ċ Ġ* Ġgrant Ġfound Ġat Ċ Ġ* Ġhttp :// polymer . github . io / PAT ENTS . txt Ċ Ġ*/ Ċ Ċ package Ġar cs . core . data Ċ Ċ /** ĠSpecification Ġof Ġan ĠArc s Ġ[ Particle ]. Ġ*/ Ċ data Ġclass ĠParticle Spec ( ĊĠ Ġ/** ĠThe Ġname Ġof Ġthe Ġparticle . Ġ*/ ĊĠ Ġval Ġname : ĠString , ĊĠ Ġ/** ĠAll Ġthe Ġhandle Ġconnections Ġof Ġthe Ġparticle Ġindexed Ġby Ġthe Ġconnection Ġname . Ġ*/ ĊĠ Ġval Ġconnections : ĠMap < String , ĠHandle Connection Spec >, ĊĠ Ġ/** ĠThe Ġlocation Ġof Ġthe Ġimplementation . Ġ*/ ĊĠ Ġval Ġlocation : ĠString , ĊĠ Ġval Ġclaims : ĠList < Claim > Ġ= Ġempty List (), ĊĠ Ġval Ġchecks : ĠList < Check > Ġ= Ġempty List (), ĊĠ Ġval Ġannotations : ĠList < Annotation > Ġ= Ġempty List () Ċ ) Ġ{ ĊĠ Ġval Ġdata flow Type : ĠParticle Data flow Type ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠ Ġval Ġisolated Ġ= Ġannotations . any Ġ{ Ġit . name Ġ== Ġ" is olated " Ġ} ĊĠĠĠĠĠ Ġval Ġingress Ġ= Ġannotations . any Ġ{ Ġit . name Ġ== Ġ" ingress " Ġ} ĊĠĠĠĠĠ Ġval Ġe gress Ġ= Ġannotations . any Ġ{ Ġit . name Ġ== Ġ" e gress " Ġ} ĊĠĠĠĠĠ Ġrequire (!( is olated Ġ&& Ġingress )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Particle Ġcannot Ġbe Ġtagged Ġwith Ġboth Ġ@ is olated Ġand Ġ@ ingress ." ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġrequire (!( is olated Ġ&& Ġe gress )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Particle Ġcannot Ġbe Ġtagged Ġwith Ġboth Ġ@ is olated Ġand Ġ@ e gress ." ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġingress Ġ&& Ġe gress Ġ-> ĠParticle Data flow Type . Ingress And E gress ĊĠĠĠĠĠĠĠ Ġingress Ġ-> ĠParticle Data flow Type . Ingress ĊĠĠĠĠĠĠĠ Ġe gress Ġ-> ĠParticle Data flow Type . E gress ĊĠĠĠĠĠĠĠ Ġisolated Ġ-> ĠParticle Data flow Type . Is olated ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġ// ĠPart icles Ġwith Ġno Ġannotations Ġare Ġconsidered Ġingress Ġand Ġe gress Ġby Ġdefault . ĊĠĠĠĠĠĠĠĠĠ ĠParticle Data flow Type . Ingress And E gress ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠ Ġ/** ĠOptional Ġe gress Ġtype Ġof Ġthe Ġparticle . ĠAlways Ġnull Ġfor Ġnon - e gress Ġparticles . Ġ*/ ĊĠ Ġval Ġe gress Type : ĠString ? ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠ Ġval Ġe gress Ġ= Ġannotations . find Ġ{ Ġit . name Ġ== Ġ" e gress " Ġ} Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠ Ġreturn Ġe gress . get Optional String Param (" type ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** ĠIndicates Ġthe Ġflow Ġof Ġdata Ġinto / out Ġof Ġa Ġparticle . Ġ*/ Ċ enum Ġclass ĠParticle Data flow Type ( val Ġisolated : ĠBoolean , Ġval Ġingress : ĠBoolean , Ġval Ġe gress : ĠBoolean ) Ġ{ ĊĠ ĠI sol ated ( is olated Ġ= Ġtrue , Ġingress Ġ= Ġfalse , Ġe gress Ġ= Ġfalse ), ĊĠ ĠIn gress ( is olated Ġ= Ġfalse , Ġingress Ġ= Ġtrue , Ġe gress Ġ= Ġfalse ), ĊĠ ĠE gress ( is olated Ġ= Ġfalse , Ġingress Ġ= Ġfalse , Ġe gress Ġ= Ġtrue ), ĊĠ ĠIn gress And E gress ( is olated Ġ= Ġfalse , Ġingress Ġ= Ġtrue , Ġe gress Ġ= Ġtrue ) Ċ } Ċ