tree e38e5594d0f26ab5c7c4c5189da61c2495d7224e
parent dd36769e9f023f0336160e3a46507bd7b42ac089
author Ansgar Radermacher <ansgar.radermacher@cea.fr> 1648038961 +0100
committer Ansgar Radermacher <ansgar.radermacher@cea.fr> 1652259698 -0400

Bug 579217 - [Designer, components] Code generation for abstract components generated wrong code
Bug 579408 - [Designer, C++ codegen] Non required includes for abstract operation

- Changed order in which the component-to-OO transformation applies the ptr stereotype
  This assures the right dereferencing operaitons are produced in the createConnections call.
	(and a comment that indiciates that order has an impact).

- The component-to-OO transformation adds a abstract "get-port" operation to a class (pure virtual),
  if the class is abstract and the port is thus not implemented by the class. It is currently not
  possible to implement a part of the ports in case of an abstract component.

- Add comment to PortUtils that outlines the original idea of a separation between component-type and
  implementation. This sepearation needs to be documented in the wiki as well.

- The error message (implying a stop of code generation) is kept, as the check is only done for ports of
  the own component and those in an abstract superclass (and therefore not implemented there). This is
  aligned with the automatic synchronisation of the "implements-interface" which is not done in the
  superclass.

- Filter operations depending on their abstract status, when generting code for bodies

Change-Id: I0dc5baa1755a6c4910a10410fc84a61b122c2ba4
Signed-off-by: Ansgar Radermacher <ansgar.radermacher@cea.fr>
