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);
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);