pre{ | |
"pre: Running Baseline2Arg ETL ".println(); | |
//creates a global case which will contains all the elements that will be | |
//transformed with the current transformation | |
var c:= new Arg!Case; | |
//var kk:= new Arg!Claim; | |
//kk.~id:="ttt"; | |
//kk.name:="zzzz"; | |
//kk.description:="yyy"; | |
//kk.public = false; | |
//kk.assumed = false; | |
//kk.toBeSupported = false; | |
//kk.toBeInstantiated =false; | |
//"kk created ".println(); | |
//c.argument.add(kk); | |
var reff : Baseline!BaseFramework; | |
reff = Baseline!BaseFramework.allInstances().first; | |
var str = "pre: reff = " + reff.toString(); | |
str.println(); | |
for (z in reff.ownedActivities) { | |
if(z.name <> null) { | |
var str2 = "pre: ownedActivities name = " + z.name; | |
str2.println(); | |
} | |
} | |
} | |
post{ | |
// crear relaciones entre Activity y sus subactivities | |
var colaAuxiliar : Sequence; | |
for (z in reff.ownedActivities) { | |
if(z.isSelected ) | |
{ | |
/* | |
for(v in z.subActivity) | |
{ | |
v.BaseActivity2subActivity(); | |
} | |
*/ | |
colaAuxiliar.clear(); | |
z.busquedaAnchuraSubActivities(); | |
} | |
} | |
// crear relaciones entre Requirement y sus subrequirements | |
for (z in reff.ownedRequirement) { | |
if(z.isSelected ) | |
{ | |
/* | |
for(v in z.subRequirement) | |
{ | |
v.BaseRequirement2SubBaseRequirement(); | |
} | |
*/ | |
colaAuxiliar.clear(); | |
z.busquedaAnchuraSubsubRequirements(); | |
} | |
} | |
// crear relaciones entre activities y sus requirements | |
for (z in Baseline!BaseActivity.allInstances()) { | |
if(z.isSelected) | |
{ | |
for(y in z.ownedRequirement) | |
{ | |
if(y.isSelected) | |
{ | |
z.BaseActivity2OwnedRequirement(y); | |
} | |
} | |
} | |
} | |
// crear relaciones entre artefacts y sus requirements | |
for (z in Baseline!BaseArtefact.allInstances()) { | |
if(z.isSelected) | |
{ | |
for(y in z.constrainingRequirement) | |
{ | |
if(y.isSelected) | |
{ | |
z.BaseArtefact2constrainingRequirement(y); | |
} | |
} | |
} | |
} | |
// Store traceability links in custom model | |
/* | |
var trace : new Trace!Trace; | |
for (z in transTrace.transformations) { | |
var link : new Trace!TraceLink; | |
link.sources.add(z.source); | |
link.targets = z.targets; | |
link.description = "Transformed by " + z.getRule().name; | |
trace.links.add(link); | |
"post: Transformed by " + z.getRule().name; | |
} | |
*/ | |
"post: Finished Baseline2Arg ETL ".println(); | |
} | |
//Transform RefActivity to Claim | |
rule BaseActivity2Claim | |
transform s : Baseline!BaseActivity | |
to t : Arg!Claim | |
{ | |
guard : s.isSelected | |
"BaseActivity2Claim: Initializing Claim ".println(); | |
t.id:=s.id; | |
t.name:=s.name; | |
t.description:=s.description; | |
//s.objective; | |
//t.content; | |
t.public = false; | |
t.assumed = false; | |
t.toBeSupported = false; | |
t.toBeInstantiated =false; | |
c.argument.add(t); | |
("BaseActivity2Claim: Claim " + t.name + " (id = " + t.id + ") associated to the Case").println(); | |
} | |
//Transform RefRequirement to Claim | |
rule BaseRequirement2Claim | |
transform s : Baseline!BaseRequirement | |
to t : Arg!Claim | |
{ | |
guard : s.isSelected | |
"BaseRequirement2Claim: Initializing Claim ".println(); | |
t.id:=s.id; | |
t.name:=s.name; | |
t.description:=s.description; | |
//s.reference; | |
//t.content; | |
t.public = false; | |
t.assumed = false; | |
t.toBeSupported = false; | |
t.toBeInstantiated =false; | |
c.argument.add(t); | |
("BaseRequirement2Claim: Claim " + t.name + " (id = " + t.id + ") associated to the Case").println(); | |
} | |
//Transform RefArtefact to InformationElementCitation | |
rule BaseArtefact2InformationElementCitation | |
transform s : Baseline!BaseArtefact | |
to t : Arg!InformationElementCitation | |
{ | |
guard : s.isSelected | |
"BaseArtefact2InformationElementCitation: Initializing InformationElementCitation ".println(); | |
t.id:=s.id; | |
t.name:=s.name; | |
t.description:=s.description; | |
//s.reference; | |
//t.content; | |
t.type = Arg!InformationElementType#Solution; | |
t.toBeInstantiated =false; | |
c.argument.add(t); | |
("BaseArtefact2InformationElementCitation: InformationElementCitation " + t.name + " (id = " + t.id + ") associated to the Case").println(); | |
} | |
//Create links between a RefActivity and one subActivity | |
operation Baseline!BaseActivity BaseActivity2SubActivity(z : Baseline!BaseActivity) | |
{ | |
("BaseActivity2SubActivity(): Initializing AssertedInference for " + self.name).println(); | |
("BaseActivity2SubActivity(): Source claim ="+ self.equivalent()).println(); | |
if(z.isSelected ) | |
{ | |
("BaseActivity2SubActivity(): Target claim ="+ z.equivalent()).println(); | |
//("BaseActivity2subActivity(): self=" + self.equivalent()).println(); | |
//("BaseActivity2subActivity(): z=" + z.equivalent()).println(); | |
var y = new Arg!AssertedInference; | |
//attr AssertedByMultiplicityExtension multiextension; | |
//attr String cardinality=""; | |
y.name = ''; | |
//NO!!!y.source[0] = self.equivalent(); | |
//NO!!!y.target[0] = z.equivalent(); | |
y.source.add(self.equivalent()); | |
y.target.add(z.equivalent()); | |
c.argument.add(y); | |
("BaseActivity2SubActivity(): AssertedInference " + y.name + "(s=" + y.source[0].name + ", t=" + y.target[0].name + ") associated to the Case").println(); | |
} | |
} | |
operation Baseline!BaseActivity busquedaAnchuraSubActivities() | |
{ | |
for(hijo : Baseline!BaseActivity in self.subActivity) | |
{ | |
colaAuxiliar.add(hijo); // annadir al final de la Queue | |
// crear link | |
self.BaseActivity2SubActivity(hijo); | |
} | |
// seguir buscando.... | |
if(colaAuxiliar.size() > 1) | |
{ | |
var cabeza = colaAuxiliar.first(); colaAuxiliar.removeAt(0); // obtener primer elemento de la Queue | |
cabeza.busquedaAnchuraSubActivities(); | |
} | |
} | |
//Create links between a RefRequirement and its subRequirements | |
operation Baseline!BaseRequirement BaseRequirement2subBaseRequirement(z : Baseline!BaseRequirement) | |
{ | |
("BaseRequirement2SubBaseRequirement(): Initializing AssertedInference for " + self.name).println(); | |
("BaseRequirement2SubBaseRequirement(): Source requirement ="+ self.equivalent()).println(); | |
if(z.isSelected ) | |
{ | |
("BaseRequirement2SubBaseRequirement(): Target requirement ="+ z.equivalent()).println(); | |
var y = new Arg!AssertedInference; | |
//attr AssertedByMultiplicityExtension multiextension; | |
//attr String cardinality=""; | |
y.name = ''; | |
y.source.add(self.equivalent()); | |
y.target.add(z.equivalent()); | |
c.argument.add(y); | |
("BaseRequirement2SubBaseRequirement(): AssertedInference " + y.name + "(s=" + y.source[0].name + ", t=" + y.target[0].name + ") associated to the Case").println(); | |
} | |
} | |
operation Baseline!BaseRequirement busquedaAnchuraSubRequirements() | |
{ | |
for(hijo : Baseline!BaseRequirement in self.subRequirement) | |
{ | |
colaAuxiliar.add(hijo); // annadir al final de la Queue | |
// crear link | |
self.BaseRequirement2SubBaseRequirement(hijo); | |
} | |
// seguir buscando.... | |
if(colaAuxiliar.size() > 1) | |
{ | |
var cabeza = colaAuxiliar.first(); colaAuxiliar.removeAt(0); // obtener primer elemento de la Queue | |
cabeza.busquedaAnchuraSubRequirements(); | |
} | |
} | |
//Create links between a RefActivity and its RefRequirements | |
operation Baseline!BaseActivity BaseActivity2OwnedRequirement(z : Baseline!BaseRequirement) | |
{ | |
("BaseActivity2OwnedRequirement(): Initializing AssertedInference for " + self.name).println(); | |
("BaseActivity2OwnedRequirement(): Source claim ="+ self.equivalent()).println(); | |
if(z.isSelected ) | |
{ | |
("BaseActivity2OwnedRequirement(): Target claim ="+ z.equivalent()).println(); | |
//("BaseActivity2OwnedRequirement(): self=" + self.equivalent()).println(); | |
//("BaseActivity2OwnedRequirement(): z=" + z.equivalent()).println(); | |
var y = new Arg!AssertedInference; | |
//attr AssertedByMultiplicityExtension multiextension; | |
//attr String cardinality=""; | |
y.name = ''; | |
//NO!!!y.source[0] = self.equivalent(); | |
//NO!!!y.target[0] = z.equivalent(); | |
y.source.add(self.equivalent()); | |
y.target.add(z.equivalent()); | |
c.argument.add(y); | |
("BaseActivity2OwnedRequirement(): AssertedInference " + y.name + "(s=" + y.source[0].name + ", t=" + y.target[0].name + ") associated to the Case").println(); | |
} | |
} | |
//Create links between a RefArtefact and its RefRequirements | |
operation Baseline!BaseArtefact BaseArtefact2constrainingRequirement(z : Baseline!BaseRequirement) | |
{ | |
("BaseArtefact2constrainingRequirement(): Initializing AssertedInference for " + self.name).println(); | |
("BaseArtefact2constrainingRequirement(): Target InformationElementCitation ="+ self.equivalent()).println(); | |
if(z.isSelected ) | |
{ | |
("BaseArtefact2constrainingRequirement(): Source claim ="+ z.equivalent()).println(); | |
//("BaseActivity2OwnedRequirement(): self=" + self.equivalent()).println(); | |
//("BaseActivity2OwnedRequirement(): z=" + z.equivalent()).println(); | |
var y = new Arg!AssertedInference; | |
//attr AssertedByMultiplicityExtension multiextension; | |
//attr String cardinality=""; | |
y.name = ''; | |
//NO!!!y.source[0] = self.equivalent(); | |
//NO!!!y.target[0] = z.equivalent(); | |
y.source.add(self.equivalent()); | |
y.target.add(z.equivalent()); | |
c.argument.add(y); | |
("BaseArtefact2constrainingRequirement(): AssertedInference " + y.name + "(s=" + y.source[0].name + ", t=" + y.target[0].name + ") associated to the Case").println(); | |
} | |
} |