User Tools

Site Tools


padl_generator

PADL Generator

In general, a code-level model can be obtain for a system through reverse-engineering/parsing using:

final ICodeLevelModel codeLevelModel =
   Factory.getInstance().createCodeLevelModel(<Name>);
codeLevelModel.create(
   new <A>Creator(
       <FileRepository>.getInstance(),
       new String[] { <Some files> }), <Recurse in directories>);

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:

  1. Annotating the models with information about lines of code;
  2. Annotating the models with information about conditional statements;
  3. Adding appropriate listeners (if desired);
  4. 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)