Through Eclipse Mars, the Java Reverse Engineering was available in the Papyrus extra plugins. Since Eclipse Neon, they are now in a separate Papyrus component, called Papyrus software designer.
The Java reverse tools allow Java files or packages to be reverse-engineered into a Papyrus class diagram.
[[installation_instructions]]
== Installation instructions
The Java features of Papyrus are available as part of the http://wiki.eclipse.org/Papyrus_Software_Designer[Papyrus Software Designer] extra feature.
You can install it by using the Papyrus Software Designer update-site (for Oxygen):
The reverse engineering capabilities are part of the Java feature of Papyrus SW designer. Java reverse is available, once the Java feature is installed via update site or marketplace. See link:../getting-started
[[how_to_use_reverse]]
== How to use Reverse
...
...
@@ -33,7 +18,7 @@ A Java class can be reverse-engineered into a Papyrus class diagram:
* select a Java package from a project
* click the Reverse button image:figs/ReverseButton.jpg[Reverse button]
A UML class is created in Model Explorer. You can now add it into your diagram.
A UML class is created in Model Explorer. You can now add it to your diagram.
Note that all associated classes have also been added to the model.
[[reverse_engineer_a_package]]
...
...
@@ -41,9 +26,9 @@ Note that all associated classes have also been added to the model.
A Java package (and all classes included) can be reverse-engineered into a Papyrus class diagram:
* open the class diagram,
* select a Java package from a project,
* click the Reverse button image:figs/ReverseButton.jpg[Reverse button]
* Open the class diagram,
* Select a Java package from a project,
* Click the Reverse button image:figs/ReverseButton.jpg[Reverse button]
Packages and classes have been created in Model Explorer. Your can now add them to your diagram.
Note that all associated classes have also been added to the model.
...
...
@@ -51,7 +36,7 @@ Note that all associated classes have also been added to the model.
[[reverse_engineering_settings]]
==== Reverse-engineering settings
By default, a package named "generated" is created for reverse-engineering. You can choose another package name on the options menu.
By default, a package named "generated" is created for reverse-engineering. You can choose another package name in the options menu.
@@ -72,11 +57,11 @@ You can reverse-engineer a class or a package by just dragging & dropping it on
image:figs/JavaReverseDragAndDrop.png[Reverse drag and drop]
A settings dialog is opened. You can modify settings (please see Reverse settings).
When you're reverse-engineering via the drag & drop method, you can also choose to display model, packages, and classes / interfaces / enumerations in the Papyrus diagram. To enable display, just click the check-boxes:
When you are reverse-engineering via the drag & drop method, you can also choose to display model, packages, and classes / interfaces / enumerations in the Papyrus diagram. To enable display, just click the check-boxes:
image:figs/JavaReverseDnDPopUp.png[Reverse drag and drop popup]
When you click on the _OK_ button, your components are displayed in the Papyrus diagram. Note: while all selected components are reversed-engineered, only components which are selected, but not in the Papyrus diagram are displayed.
When you click the _OK_ button, your components are displayed in the Papyrus diagram. Note: while all selected components are reversed-engineered, only components which are selected, but not in the Papyrus diagram are displayed.
image:figs/JavaReverseDnDResult.png[Reverse drag and drop results]
*** Class oepd.languages.java.reverse.ui.handlers.JavaCodeReverseInJobHandler - the methods doPrepareExecute(ExecutionEvent) and doExecuteTransactionInJob(IProgressMonitor) are called first
*** Project explorer walker
*** Class oepd.languages.java.reverse.ui.ProjectExplorerNodeWalkerWithIProgress - the methods doSwitch(Object, SubMonitor) and visitICompilationUnit(ICompilationUnit, SubMonitor) traverse the project explorer resources recursively until reaching a compilation unit (called a "node" in this context).
*** Class oepd.languages.java.reverse.ui.ReverseSelectedNodeVisitor - the method visitICompilationUnit(ICompilationUnit) examines JDT elements of a compilation unit.
** org.eclipse.papyrus.designer.languages.java.reverse - plugin for the Java reverse mechanism
*** Class oepd.languages.java.reverse.umlparser.CompilationUnitAnalyser - analyze a compilation unit and create associated UML elements. The compilation unit analyzer uses other classes of the package oepd.languages.java.reverse.umlparser