Skip to main content
Version: 1.6.1-java-11

Main features

📄️ Model at runtime computation

PAMELA model at runtime is computed dynamically, working on the classpath of launched java application, and starting from a simple java interface (or a collection of java interfaces) which is/are PAMELA-annotated. From a mathematical point of view, internal representation of the underlying model is a graph whose vertex are PAMELA ModelEntities (annotated java interface), and edges are either inheritance links or reference links (a property whose type is another ModelEntity). @Imports and @Import annotations allows to include some other ModelEntities in the model. On the contrary, an annotation attribute @Getter(...ignoreType=true) allows to ignore the link. In that context, PAMELA model computation is a graph closure computation, starting from a collection of vertices.

📄️ Multiple inheritance and traits programming

Traits programming is generally described as a way to organize the code around the notion of feature (while a more classical methodology in object-oriented programming present a class-oriented structure, where a class generally combines many features around the notion of responsability). With traits programming, classes are defined as the composition of traits using inheritance operation. Multiple inheritance is thus a requirement for such a programming methodology, at the condition that naming collisions (known as diamond problem) may be solved by explicit disambiguation.