Add postprocessing step to structural weaver to update referenced elements

Issue #160 resolved
Matthias Schoettle created an issue

Steps to reproduce:

  1. Create AspectA with Class A
  2. Create AspectB with Class B
  3. Extend AspectA
  4. Create operation "+ A getA()" in Class B
  5. Weave

Result:

The return type referring to A in the operation is not updated in the woven aspect, it points to A in AspectA. This can be observed by the validator (there is an error) and when saving the model.

Currently, existing elements are not updated. I think this requires an additional post-processing step to take care of it.

Comments (7)

  1. Matthias Schoettle reporter

    This should be done once issue #161 is resolved (improvements to ReferenceUpdater).

    The following classes need to be updated:

    • ClassifierMapping (to element could be from extended aspect)
    • Operation (return type)
    • Attribute (type)
    • Parameter (type)
  2. Matthias Schoettle reporter

    References issue #160: Added reference updating for OperationMapping and ParameterMapping.

    Fix for updating list of objects to be able to call it passing a list of any sub-class of EObject.

    → <<cset b22f90454eb5>>

  3. Matthias Schoettle reporter

    References issue #160: Introcuded postprocessing operation to PostProcessor, which then internally performs the required postprocessing steps.

    Added postprocessing step to update the references of the woven aspect (higher-level) using the ReferenceUpdater.

    The updating of references in the updateInstantiationDeclaratives step (addressed in issue #58) is now handled by ReferenceUpdater in the second postprocessing step.

    → <<cset 97b5484b806f>>

  4. Log in to comment