This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
padl [2014/02/16 10:03] yann |
padl [2025/01/15 21:40] (current) |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| ===== 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...); | ||
| Line 108: | Line 108: | ||
| - | ===== ''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; | ||
| Line 135: | Line 135: | ||
| 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]]! | ||