blob: 946b2571713b13694868db9de2c368331af9a507 [file] [log] [blame]
// EPF -> REQ;
// OpenCert -> BASELINE;
pre {
'Running ETL'.println();
var contentpackage : REQ!ContentPackage;
contentpackage = REQ!ContentPackage.allInstances().first();
var strp = "ContentPackage: " +contentpackage;
strp.println();
var processComponent : LIB!ProcessComponent;
processComponent = LIB!ProcessComponent.allInstances().first;
var name = "ProcessComponent: " +processComponent.name;
name.println();
}
post{
"Post: Finished EPF2Baseline ETL ".println();
}
rule ContentPackage2BaseFramework
transform cp : REQ!ContentPackage //pc: LIB!ProcessComponent
to baseline : Baseline!BaseFramework, process:PRO!ProcessModel{
guard : cp.name = "CoreContent"
baseline.id=cp.id;
baseline.name=" ContentPackage " +cp.name;
var strcp = "ContentPackage: " +baseline.name;
strcp.println();
var strcp2 = "ProcessModel: " +process.name;
//strcp2.println();
for (pra in REQ!Practice.allInstances()){
if(isMainPractice(pra) = true){
baseline.ownedActivities.add(pra.equivalent());
}
}
}
rule Practice2BaseActivity
transform pra : REQ!Practice
to bac : Baseline!BaseActivity
{
guard: isMainPractice(pra) = true
var strpra = "After guard Practice: " +pra.name;
//strpra.println();
bac.id=pra.id;
bac.name="Practice: " +pra.name;
//Getting design_and_implementation,staffing_plan and tool_qualification_plan
for(sp1 in pra.subPractices){
var ba1 = new Baseline!BaseActivity;
ba1.id=sp1.id;
ba1.name="Practice: " +sp1.name;
bac.subActivity.add(ba1);
//Getting Phase Practices
for(sp2 in sp1.subPractices){
var stringsp = "sp2 Practice: " +sp2.name;
//stringsp.println();
var ba2 = new Baseline!BaseActivity;
ba2.id=sp2.id;
ba2.name="Practice: " +sp2.name;
ba1.subActivity.add(ba2);
//ba1.precedingActivity.add(ba2);
//getting Reference linked phase
for(arct in sp2.activityReferences){
var eProxyURI = "arph ct activityReferences: " +arct.eProxyURI;//.eClass.name;
//eProxyURI.println();
var arctid = eProxyURI.substring((eProxyURI.indexOf('#'))+1);
//arctid.println();
for(ph in LIB!Phase.allInstances()){
var stringph = "Phase: " +ph.name;
//stringph.println();
var ab = "Phase name: "+ph.name;
//ab.println();
if(ph.id = arctid){
var cd = "After Match: Phase name: "+ph.name;
//cd.println();
var act = new PRO!Activity;
act.id="Ph"+ph.id;
act.name="Phase: "+ph.name;
process.ownedActivity.add(act);
}
}
}
//Getting linked Roles
for(cr in sp2.contentReferences){
var eProxyURI = "contentReferences: " +cr.eProxyURI;
//eProxyURI.println();
var crid = eProxyURI.substring((eProxyURI.indexOf('#'))+1);
//crid.println();
for(role in ROL!Role.allInstances()){
var ab = "Role name: "+role.name;
//ab.println();
if(role.id = crid){
var cd = "After Match: Role name: "+role.name;
//cd.println();
var pr = new PRO!Person;
pr.name="Role: "+role.name;
pr.id="Rd"+role.id;
process.ownedParticipant.add(pr);
}
}
for(tool in ROL!Tool.allInstances()){
var ab = "Tool name: "+tool.name;
//ab.println();
if(tool.id = crid){
var cd = "After Match: Tool name: "+tool.name;
//cd.println();
var tl = new PRO!Tool;
tl.name="Tool: "+tool.name;
tl.id="tl"+tool.id;
var cd = "After transform: Tool name: "+tool.name;
//cd.println();
process.ownedParticipant.add(tl);
}
}
}
//Getting Activity,
for(sp3 in sp2.subPractices){
var stringsp = "sp3 Practice: " +sp3.name;
//stringsp.println();
var ba3 = new Baseline!BaseActivity;
ba3.id=sp3.id;
ba3.name="Practice: " +sp3.name;
ba2.subActivity.add(ba3);
//ba2.precedingActivity.add(ba3);
//getting linked Activities
for(arsbc in sp3.activityReferences){
var eProxyURI = "sbc activityReferences: " +arsbc.eProxyURI;
//eProxyURI.println();
var arsbcid = eProxyURI.substring((eProxyURI.indexOf('#'))+1);
//arsbcid.println();
for(act in LIB!Activity.allInstances()){
var stringact = "Activity: " +act.name;
//stringact.println();
if(act.id = arsbcid){
//var cd1 = "After Match: Activity name: "+act.name;
//cd1.println();
var act1 = new PRO!Activity;
act1.id="act"+act.id;
act1.name="Activity: "+act.name;
var cd1 = "After transform: Activity name: "+act1.name;
// cd1.println();
process.ownedActivity.add(act1);
}
}
}
//Getting Task practices
for(sp4 in sp3.subPractices){
var stringsp = "sp4 Practice: " +sp4.name;
//stringsp.println();
var br = new Baseline!BaseRequirement;
br.id=sp4.id;
br.name="Practice: " +sp4.name;
ba3.ownedRequirement.add(br);
//Getting linked Roles
for(cr in sp4.contentReferences){
var eProxyURI = "contentReferences: " +cr.eProxyURI;
//eProxyURI.println();
var crid = eProxyURI.substring((eProxyURI.indexOf('#'))+1);
//crid.println();
for(task in ROL!Task.allInstances()){
var ab = "Task name: "+task.name;
//ab.println();
if(task.id = crid){
var cd = "After Match: Task name: "+task.name;
//cd.println();
var actd = new PRO!Activity;
actd.id="Task"+task.id;
actd.name="Task: "+task.name;
process.ownedActivity.add(actd);
}
}
}
}//sp4
}//sp3
}//sp2
}//sp1
}//Rule
operation isMainPractice(pra:REQ!Practice) : Boolean {
var endop = ".........Start op..........";
//endop.println();
for(ar in pra.activityReferences){
var eProxyURI = "activityReferences: " +ar.eProxyURI;
//eProxyURI.println();
var arid = eProxyURI.substring((eProxyURI.indexOf('#'))+1);
//arid.println();
for(dp in LIB!DeliveryProcess.allInstances()){
var ab = "DeliveryProcess name : "+dp.name;
//ab.println();
if(dp.id = arid){
var cd = "After Match practice name: "+pra.name;
//cd.println();
var srtop = ".........End op..........";
//srtop.println();
return true;
}
}
}
return false;
}