Related content
Previous snippet
2_no_part
Interface blocks composite properties are either ports, value properties or flow properties.
self.base_Class.ownedAttribute->select(a|a.isComposite)->forAll(a |
a.oclIsKindOf(UML::Port) or a.oclIsKindOf(ValueType))