// 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; | |
} |