Behavior/OutputPinPort [ Rules ]
[ Top ] [ Behavior ] [ Rules ]
SUMMARY
Transform a SysML InputPin into a HiLeS Port. ($Rev: 443 $)
DESCRIPTION
InputPins that belong to CallOperationActions must be transformed to Ports which will be added to the Strucural Block that contains it.
SEE ALSO
DOMAIN
SPECIFICATION
relation OutputPinPort { checkonly domain SysML pout:OutputPin { action = a:CallOperationAction{}, name = nn, id = nid, type = nt:Type{}}, } enforce domain HiLeS p:Port { block = b:Structural, name = nn, id = pid, direction = PointDirection::output, } when { StrcuturalBlockBehavior(a.behavior.getParentBlock(), b, pin, pout); CallOperationAction->allInstances()->exists(co | (co.target->notEmpty() and co.target = pout) or co.result->includes(pout) or co.argument->includes(pout))) or CallBehaviorAction->allInstances()->exists(co | co.result->includes(pout) or co.argument->includes(pout)) } where { if nt->notEmpty() then pid = nt.id; else pid = nid; endif } *