Related content
Previous snippet
2_not_bound_to_fullport
Binding connectors shall not link full ports (either directly or indirectly through other binding connectors) to other composite properties of the block owning the full port (or that blocks generalizations or specializations), unless the composite properties are non-full ports.
let fullPorts: Set(UML::Port) = FullPort.allInstances().base_Port->asSet() in
BindingConnector.allInstances().base_Connector->select(c | c.end.role
->includes(self.base_Port))->forAll(c | fullPorts->excludesAll(c.end.role->reject
(r | r=self.base_Port)))