blob: 6ae8f7f5119479a2c3bd42d6dfd19e4c4fa87f47 [file] [log] [blame]
transformation umlRdbms {
middle imports tuml2rdbms;
uml imports umlMM;
rdbms imports rdbmsMM;
}
map Map0a in umlRdbms refines NoSuchMap
{
check uml (p:Package) {
c: Class|
c.kind = 'Persistent';
}
check enforce rdbms () {
}
where middle (v1: TPackageToSchema| v1.p = p; ) {
cn:String |
c.name = cn;
}
}
map Map0b in umlRdbms
{
check uml () {
creation umlRdbms::q0('a');
deletion umlRdbms::q0('a');
}
check enforce rdbms () {
t:Table|
}
check enforce rdbms () {}
where middle () {
}
}
map Map1 in umlRdbms refines Map0a, Map0b
{
check uml () {
c.namespace = p;
}
check enforce rdbms (s:Schema | v1 = null; p = null; v2 = null;) {
t.schema = s;
}
where middle (v1.s = s;) {
realize v2: TClassToTable |
v2.p := p;
v2.s := s;
v2.c := c;
}
map in umlRdbms { -- Error nested scoping
where () {
t.description := cn;
}
}
}
map Map2 in umlRdbms refines Map1
{
check middle () {}
where middle () {
v2.t := t;
t.name = cn;
}
}
map in umlRdbms -- Error no name
{
where middle () {}
map BadName { where () {} } -- Error spurious name
}
query umlRdbms::q0(x:String) : String { null }