PADL models can be modified or abstracted by applying analyses on the different abstract-level models. All analyses implement the
padl.analysis.IAnalysis interface. Among the most popular such analyses is:
padl.analysis.repository.AACRelationshipsAnalysisthat takes an
ICodeLevelModelas input an returns an
IIdiomLevelModelas output. This model is similar to the input model (a clone really) but it includes reified binary-class relationships that can be inferred statically: creation, use, association, and aggregation. The inference of the binary-class relationships is explained in a paper. The basic idea is to identify certain fields, methods, and method invocations and associate these with the appropriate binary-class relationship;
padl.analysis.repository.SystematicUMLAnalysisthat adds new constituents and convert other constituents in a PADL model to make this model into a full-fledge UML model, including data class, types, powertypes, and so on.
Another class of analyses pertain to statements and implement the
padl.statement.analysis.IAnalysis interface. Among the most popular such analyses are:
padl.statement.creator.classfiles.LOCModelAnnotatorthat adds extra information in the methods in a PADL model regarding their lines of code;
padl.statement.creator.classfiles.ConditionalModelAnnotatorthats add new constituents in the methods of a PADL model to describe conditional statements.