| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| padl [2014/02/16 10:03] – yann | padl [2025/01/15 21:40] (current) – external edit 127.0.0.1 |
|---|
| ===== Levels of Models ===== | ===== Levels of Models ===== |
| |
| There are three different levels of abstractions to model programs, collectively called abstract-level models: | There are four different levels of abstractions to model programs, collectively called abstract-level models: |
| |
| * A ''ICodeLevelModel'' represents the "raw" model of a program, including only data directly extractable from the program source representation (Java bytecodes, Java source code, C/C++ source code...); | * A ''ICodeLevelModel'' represents the "raw" model of a program, including only data directly extractable from the program source representation (Java bytecodes, Java source code, C/C++ source code...); |
| |
| |
| ===== ''getName()'' and ''getPath()'' Methods ===== | ===== Names and Paths ===== |
| |
| The ''getName()'' always returns the simple name of a constituent. For binary-class relationships and method invocations, the name returned by ''getName()'' is less important, it could simply be ''Method Invocation'', for example. For a first-class entity, though, it is important, for example ''getName()'' returns ''Constituent'' for ''padl.kernel.IConstituent''. Here are other examples of ''getName()'' values: | The ''getName()'' always returns the simple name of a constituent. For binary-class relationships and method invocations, the name returned by ''getName()'' is less important, it could simply be ''Method Invocation'', for example. For a first-class entity, though, it is important, for example ''getName()'' returns ''IConstituent'' for ''padl.kernel.IConstituent''. Here are other examples of ''getName()'' values: |
| |
| * ''padl'' for a package; | * ''padl'' for a package; |
| |
| The class ''padl.path.Finder'' in the ''PADL'' project can be used to walk the paths. | The class ''padl.path.Finder'' in the ''PADL'' project can be used to walk the paths. |
| | |
| | ===== Visitors ===== |
| | |
| | The PADL metamodel provide two types of visitors to allow third-party to analyse PADL models. It follows the standard API for visitors but with a twist for the implementation. Understading the PADL visitors [[http://www.ptidej.net/team/photos/180306 - Understanding PADL Visitor|is easy]]! |