blob: a010d868db52071c552ead1316ec66e390aeb0fe [file] [log] [blame]
rule GSN2Dot {
template: "gsn.egl"
parameters: Map{
"AllContextOf" = ContextOf.all,
"AllSolutions" = Solution.all,
"AllSupportedBy" = SupportedBy.all,
"AllStrategies" = Strategy.all,
"AllGoals" = Goal.all,
"path" = Sequence{"Model", "(All nodes)"},
"format" = "graphviz-dot",
"icon" = "diagram",
"layers" = Sequence {
Map { "id"="contexts", "title"="Contexts"}
}
}
}
/*
rule GSN2DotNoContexts {
template: "gsn.egl"
parameters: Map{
"AllContextOf" = Sequence{},
"AllSolutions" = Solution.all,
"AllSupportedBy" = SupportedBy.all,
"AllStrategies" = Strategy.all,
"AllGoals" = Goal.all,
"path" = Sequence{"Model", "(All nodes - No Contexts)"},
"format" = "graphviz-dot",
"icon" = "diagram"
}
}*/
rule Goal2Dot
transform g : Goal {
template: "gsn.egl"
parameters {
var AllStrategies = SupportedBy.all.select(s|s.source = g and s.`target`.isTypeOf(Strategy)).`target`;
return Map{
"AllContextOf" = ContextOf.all.select(c|c.source = g),
"AllSolutions" = SupportedBy.all.select(s|s.source = g and s.`target`.isTypeOf(Solution)).`target`,
"AllSupportedBy" = SupportedBy.all.select(s|s.source = g or AllStrategies.includes(s.source)),
"AllStrategies" = AllStrategies,
"AllGoals" = Sequence{g}.includingAll(SupportedBy.all.select(s|AllStrategies.includes(s.source) and s.`target`.isTypeOf(Goal)).`target`),
"path" = Sequence{"Model", "Goals", "(" + g.name + ") " + g.description},
"format" = "graphviz-dot",
"icon" = "diagram",
"layers" = Sequence {
Map { "id"="contexts", "title"="Contexts"}
}
};
}
}