13. La única forma de crear elementos.
Matched rules (prog. Declarativa)
Called rules (prog. Imperativa)
REGLAS
14. rule Author {
from
a : MMAuthor!Author
to
p : MMPerson!Person (
name <- a.name,
surname <- a.surname
)
}
Un mismo elemento no puede ser transformado
por mas de una matched rule.
REGLAS
15. rule NewPerson (na: String, s_na: String) {
to
p : MMPerson!Person (
name <- na
)
do {
p.surname <- s_na
}
}
Invocación de la called rule
thisModule.NewPerson("Juan","Perez")
REGLAS
18. QUERY
Permite calcular un valor primitivo, como un string o
un entero a partir de los elementos de los modelos
query query_name = exp;
query PersonNb = MMPerson!Person.allInstances()->
size().toString().writeTo('result.txt');
LIBRARY
Consiste de un conjunto de helpers que pueden ser
invocados desde las unidades que importen dicha
libreria. Los helpers deben tener asociado un
contexto.
No puede ser ejecutada en forma independiente.