Samples of the forward and reverse engineering

/*<![CDATA[*/ div.rbtoc1584182878778 {padding: 0px;} div.rbtoc1584182878778 ul {list-style: disc;margin-left: 0px;} div.rbtoc1584182878778 li {margin-left: 0px;padding-left: 0px;} /*]]>*/

Performing the forward engineering

The example shows how to perform a simple java code generation.

Step #1. Creating CodeEngineeringSet

Project project = Application.getInstance().getProject();
String name = "sample CE project";
String workingDir = OPENAPI_DATA_DIRECTORY_PATH;
// create a working package
ElementsFactory ef = project.getElementsFactory();
Package workingPackage = ef.createPackageInstance();
workingPackage.setName("my working package");
workingPackage.setOwner(project.getModel());
// creating a code engineering set
CodeEngineeringSet javaGenerationSet = CodeEngineeringManager.createCodeEngineeringSet(
CodeEngineeringConstants.Languages.JAVA, null, name, project, workingPackage, workingDir);

Step #2. Adding model elements to CodeEngineeringSet

Project project = Application.getInstance().getProject();
// create a new element
ElementsFactory ef = project.getElementsFactory();
Class classA = ef.createClassInstance();
classA.setName("ClassA");
classA.setOwner(project.getModel());
List<BaseElement> modelsForSample = new ArrayList<BaseElement>();
modelsForSample.add(classA);
javaGenerationSet.addElementsToCodeEngineeringSet(modelsForSample);

Step #3. Performing the CodeEngineeringSet generation

CodeEngineeringManager.generate(javaGenerationSet);

Performing the reverse engineering

The example shows how to perform a simple java code reverse.

Step #1. Creating CodeEngineeringSet

  Project project = Application.getInstance().getProject();
String name = "sample CE project";
String workingDir = OPENAPI_DATA_DIRECTORY_PATH;// e.g C:\myworkingPackage
// create a working package
ElementsFactory ef = project.getElementsFactory();
Package workingPackage = ef.createPackageInstance();
workingPackage.setName("my working package");
workingPackage.setOwner(project.getModel());
// creating a code engineering set
CodeEngineeringSet ces = CodeEngineeringManager.createCodeEngineeringSet(
CodeEngineeringConstants.Languages.JAVA, null, name, project, workingPackage, workingDir);

Here the null dialect is used for the java language, because java doesn't have any dialect.

Step #2. Adding the source code to CodeEngineeringSet

  ces.addAllFilesRecursivelyToCES(new File(workingDir + File.separator + "test directory")); // starting from C:\myworkingPackage\test directory\

This sets the given instance of the code engineering set working directory and adds all files from that directory. Set java classpaths for the project:

  String[] claspath = new String[] { path1, path2, path3, path4 };
JavaCodeEngineeringManager.setJavaClasspath(project, claspath);

Step #3. Performing the reverse of CodeEngineeringSet

  CodeEngineeringManager.reverse(ces, false);