package Ġio . github . leg ion 2 . to sca _ orche strator . to sca . model . resolved Ċ Ċ import Ġio . github . leg ion 2 . to sca _ orche strator . to sca . definitions . Relationship Template Ċ import Ġio . github . leg ion 2 . to sca _ orche strator . to sca . model . Type Resolver Ċ import Ġio . github . leg ion 2 . to sca _ orche strator . to sca . model . instance . Attribute Instance Ċ import Ġio . github . leg ion 2 . to sca _ orche strator . to sca . model . instance . Interface Instance Ċ import Ġio . github . leg ion 2 . to sca _ orche strator . to sca . model . instance . Property Instance Ċ import Ġio . github . leg ion 2 . to sca _ orche strator . to sca . model . property . Expression Resolver Context Ċ import Ġio . github . leg ion 2 . to sca _ orche strator . to sca . model . resolved . type . Resolved Artifact Type Ċ import Ġio . github . leg ion 2 . to sca _ orche strator . to sca . model . resolved . type . Resolved Relationship Type Ċ import Ġjava . net . URI Ċ Ċ data Ġclass ĠResolved Relationship Template ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġproperties : ĠMap < String , ĠProperty Instance >, ĊĠĠĠ Ġval Ġattributes : ĠMap < String , ĠAttribute Instance >, ĊĠĠĠ Ġval Ġinterfaces : ĠMap < String , ĠInterface Instance > Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Template : ĠRelationship Template , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Types : Ġ( String ) Ġ-> ĠResolved Relationship Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Resolver Context : ĠArtifact Resolver Context , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Resolver Context : ĠExpression Resolver Context ĊĠĠĠĠĠĠĠ Ġ): ĠResolved Relationship Template Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresolved Relationship Type Ġ= Ġrelationship Types ( relationship Template . type ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠProperty Instance . validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Template . properties . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolved Relationship Type . properties , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Resolver Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattributes Ġ= ĠAttribute Instance . validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Template . attributes . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolved Relationship Type . attributes , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Resolver Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoperation Resolver Context Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Resolver Context ( artifact Resolver Context ) Ġ{ Ġthrow ĠIllegalArgumentException (" This Ġcontext Ġdoes Ġnot Ġsupport Ġartifact Ġreferences ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinterfaces Ġ= ĠInterface Instance . validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Template . interfaces . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolved Relationship Type . interfaces , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Resolver Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Resolver Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResolved Relationship Template ( name , Ġproperties , Ġattributes , Ġinterfaces ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Can Ġnot Ġinstantiate ĠRelationship : Ġ$ name ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠTODO ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresolved Relationship Type : ĠResolved Relationship Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Resolver Context : ĠExpression Resolver Context ĊĠĠĠĠĠĠĠ Ġ): ĠResolved Relationship Template Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠProperty Instance . validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolved Relationship Type . properties , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Resolver Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattributes Ġ= ĠAttribute Instance . validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolved Relationship Type . attributes , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Resolver Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfake Artifact Type Resolver : ĠType Resolver < Resolved Artifact Type > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġthrow Ġ ĠIllegalArgumentException (" Artifacts Ġmust Ġnot Ġbe Ġresolved Ġin Ġthis Ġcontext ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġartifact Resolver Context Ġ= ĠArtifact Resolver Context ( fake Artifact Type Resolver , ĠURI (""), Ġfake Artifact Type Resolver ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoperation Resolver Context Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Resolver Context ( artifact Resolver Context ) Ġ{ Ġthrow ĠIllegalArgumentException (" This Ġcontext Ġdoes Ġnot Ġsupport Ġartifact Ġreferences ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinterfaces Ġ= ĠInterface Instance . validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolved Relationship Type . interfaces , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Resolver Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Resolver Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResolved Relationship Template ( name , Ġproperties , Ġattributes , Ġinterfaces ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Can Ġnot Ġinstantiate ĠRelationship : Ġ$ name ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ