User Tools

Site Tools


padl_generator

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

padl_generator [2014/02/16 09:34]
yann
padl_generator [2019/10/06 20:37]
Line 1: Line 1:
-====== PADL Generator ====== 
- 
-In general, a code-level model can be obtain for a system through reverse-engineering/​parsing using: 
- 
-<​code>​ 
-final ICodeLevelModel codeLevelModel = 
-   ​Factory.getInstance().createCodeLevelModel(<​Name>​);​ 
-codeLevelModel.create( 
-   new <​A>​Creator( 
-       <​FileRepository>​.getInstance(),​ 
-       new String[] { <Some files> }), <Recurse in directories>​);​ 
-</​code>​ 
- 
-where: 
-    * <​Name>​ can be any String; 
-    * <​A>​Creator is any class implementing the ICodeLevelModelCreator interface. A creator is the concrete parser or reverse-engineering algorithm that builds a PADL model from some files; 
-    * <​FileRepository>​ is any class implementing the IFileRepository interface. A file repository allows the meta-model and the creator to access necessary PADL resources (constituents,​ analyses, etc.) in a platform-independent way; 
-    * <Some files> are any String pointing towards the files/​directories to be parsed, as required by the creator; 
-    * <Recurse in directories>​ is a Boolean flag that allow you to specify only the top most directory of a set of source files. 
- 
-Because all PADL creators are builders (as in the Builder design pattern) and conform to the same interface ''​padl.kernel.ICodeLevelModelCreator''​ provided by [[PADL]], it is simple to provide a unified entry point for all of them. Also, the creation of interesting models often require the additional steps of: 
-  - Annotating the models with information about lines of code; 
-  - Annotating the models with information about conditional statements; 
-  - Adding appropriate listeners (if desired); 
-  - Handling special files, such as Eclipse ''​.project''​ files or AOL CLD files; 
-  - ... 
- 
-So, the class ''​padl.generator.helper.ModelGenerator''​ in the project ''​PADL Generator''​ provides this entry point and should be used unless there are compelling reasons not to do so. The direct use of a creator will throw a warning at run-time. 
  
padl_generator.txt ยท Last modified: 2019/10/06 20:37 (external edit)