Tags

Tags are an alternative naming for modeling elements.

The idea is to use a hybrid editor for Paml source code, that's to combine text and projection editors for Paml source code (pure text editor or pure projection one seem not convenient enough for required features). Most of Paml source code is a text, but this text is extended by UI features to explicitly display/work with models metadata. Actually, Paml transformations operate on models via metadata as well.

Paml source code is not a text file. Paml hybrid source code editor displays tags and other metadata providing an ability to look/manipulate some AST nodes/elements.

Tags are a piece of metadata for models such as objects, values, routines etc. In general, tags are not a new feature but the idea is to apply tags to models in Paml source code. Then tags can be used by transformation selectors to select model elements and apply transformations to them.

Tags extend and generalize the concepts of point cuts from AOP. With tags, selecting models for transforming is not limited anymore by code elements such as method signatures, parameter types or class visibility. Tags can define semantical point cuts from both, domain and implementation, levels. Tags are an alternative naming for cross-cutting functionality.

abstraction
{
data ;
message ( val : decimal );
}
subject
{
data : string;
}
value
{
: decimal;
}
association Association name is optional, but required if a transformation is applied.
{
One-to-many association
Alonzo.Banking.Client. (*) - (1) Alonzo.Banking.Account.
}
association
{
Alonzo.Banking.Transfer. (1) - (*) Alonzo.Banking.Account.
}
association
{
Alonzo.Banking.Transfer. (1) - (*) Alonzo.Banking.Account.
}
{
Name
Kind Routine
Tags Synchronized Logging
obj : Alonzo.Banking.Client;
}
{
Name
Kind Routine
Tags Synchronized Logging
obj : Alonzo.Banking.Account;
val : Alonzo.Banking.Transfer;
}

Write a comment

Comments: 0

Pallada project, Copyright © 2015 - 2021.

For any mentions and citations of the site materials, a link to the Pallada project site is obligatory.