Vanco / SequencePlugin

SequencePlugin for IntelliJ IDEA
Other
690 stars 196 forks source link

Suggestion: Follow local interfaces #178

Closed gorefest closed 1 month ago

gorefest commented 2 months ago

Is your feature request related to a problem? Please describe. I am making use of the tool reverse engineering business processes in a legacy EJB software. My sequence diagrams halt on local interfaces.

Describe the solution you'd like Follow the implementation, if

  1. there is a local interface or an interface in general with only one implementation
  2. there is a local interface or an interface in general with multiple implementations, because it is inherited, then follow the implementation of the local interface if there is only one implementation
  3. mark this step in a specific colour or highlight it for a better understanding

Describe alternatives you've considered sorry, no alternatives

Additional context I created two plantuml's to emphasize the situation

Situation A: variable is of type of the interface, implementation is injected. Method is implemented in the implementation class.

image

Situation B: interface brings is a inherited method implemented by MyEjbService, variable is of type MyLocalInterface

image

It would be absolutely great if this could be added to the plugin's capabilities, since it makes the entire process visible.

Vanco commented 2 months ago

Which plugin version do you use?

Hints of existing features:

  1. Enable the Smart Interface option. this will try to find implementation.
  2. Use Expend... action menu to choose one implementation manually. When there is multi implementations.
  3. The interface --> implementation already drawed as a dash line, which is diffrent from other call line.

If the combination of the above three points does not meet your needs, please let me know.

It would be more helpful if you could also provide some pseudocode to describe your requirements scenario.

gorefest commented 1 month ago

Hello!

I am using latest&greatest according to my IDEA.

This are my settings

image

I have a ClientSessionBean injecting a Facade using the local interface with @EJB annotation. Here the generator stops:

image

The automatic detection fails, but choosing the "Expend" (typo?) menu item does the trick - so thanks for your hint!

I can add all implementations by expanding the lines.

Best Regards and keep up that great work :-)