Skip to content

[2485] Fix the New Derived Requirement edge tool - #2490

Open
gcoutable wants to merge 2 commits into
mainfrom
gco/fix/derived-requirement
Open

[2485] Fix the New Derived Requirement edge tool#2490
gcoutable wants to merge 2 commits into
mainfrom
gco/fix/derived-requirement

Conversation

@gcoutable

@gcoutable gcoutable commented Aug 28, 2026

Copy link
Copy Markdown
Member
  • [2485] Fix the New Derived Requirement edge tool
  • [test] Update tests constant name

PLEASE READ ALL ITEMS AND CHECK ONLY RELEVANT CHECKBOXES BELOW

Auto review

  • Have you reviewed this PR? Please do a first quick review, It is very useful to detect typos and missing copyrights, check comments, check your code... The reviewer will thank you for that :)

Project management

  • Has the pull request been added to the relevant milestone?
  • Have the priority: and pr: labels been added to the pull request? (In case of doubt, start with the labels priority: low and pr: to review later)
  • Have the relevant issues been added to the pull request?
  • Have the relevant labels been added to the issues? (area:, type:)
  • Have the relevant issues been added to the same project milestone as the pull request?

Changelog and release notes

  • Has the CHANGELOG.adoc + doc/content/modules/user-manual/pages/release-notes/YYYY.MM.0.adoc been updated to reference the relevant issues?
  • Have the relevant API breaks been described in the CHANGELOG.adoc?
  • Are the new / upgraded dependencies mentioned in the relevant section of the CHANGELOG.adoc?
  • In case of a change with a visual impact, are there any screenshots in the doc/content/modules/user-manual/pages/release-notes/YYYY.MM.0.adoc?
  • In case of a key change, has the change been added to Key highlights section in doc/content/modules/user-manual/pages/release-notes/YYYY.MM.0.adoc?

Documentation

  • Have you included an update of the documentation in your pull request? Please ask yourself if an update (installation manual, user manual, developer manual...) is needed and add one accordingly.

Tests

  • Is the code properly tested? Any pull request (fix, enhancement or new feature) should come with a test (or several). It could be unit tests, integration tests or cypress tests depending on the context. Only doc and releng pull request do not need for tests.

return connectionUsage;
}

private void addDerivedConnectionEnd(ConnectionUsage connectionUsage, RequirementUsage end, Element endContainer, Namespace newConnectionContainer) {

@gcoutable gcoutable Aug 28, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the same content as addConnectorEnd specific to the derivation of RequirementUsage

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the current version of addConnectorEnd signature I was not able to make the fix.
Thus, instead of adding more complexity to addConnectorEnd, I chose to duplicate addConnectorEnd and tailor it specifically for requirement derivation.

FeatureChainComputer cmp = new FeatureChainComputer();
List<Feature> sourceFeaturePath = cmp.computeShortestPath(newConnectionContainer, end, endContainer).orElse(List.of());

var featureMembership = SysmlFactory.eINSTANCE.createFeatureMembership();

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Create a FeatureMembership instead of a EndFeatureMembership


var featureMembership = SysmlFactory.eINSTANCE.createFeatureMembership();
connectionUsage.getOwnedRelationship().add(featureMembership);
var usage = SysmlFactory.eINSTANCE.createUsage();

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Create a Usage instead of the element specific to the connector.
In the case of a requirement derivation, the connector is a ConnectionUsage

@gcoutable
gcoutable marked this pull request as ready for review August 28, 2026 09:46
@gcoutable
gcoutable requested a review from AxelRICHARD August 28, 2026 09:46
@gcoutable gcoutable changed the title [test] Update tests constant name [2485] Fix the New Derived Requirement edge tool Aug 28, 2026
return connectionUsage;
}

private void addDerivedConnectionEnd(ConnectionUsage connectionUsage, RequirementUsage end, Element endContainer, Namespace newConnectionContainer) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add meaningful javadoc

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@gcoutable
gcoutable force-pushed the gco/fix/derived-requirement branch from 97f4240 to 2e821da Compare August 28, 2026 15:40
Bug: #2485
Signed-off-by: Guillaume Coutable <guillaume.coutable@obeo.fr>
Signed-off-by: Guillaume Coutable <guillaume.coutable@obeo.fr>
@gcoutable
gcoutable force-pushed the gco/fix/derived-requirement branch from 2e821da to a85ce79 Compare August 28, 2026 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The New Derived Requirement edge tool creates invalid semantic elements, leading to incorrect SysML export/import

2 participants