in redback-rbac/redback-rbac-role-manager/src/main/java/org/apache/archiva/redback/role/util/RoleModelUtils.java [298:363]
public static SimpleGraph generateTemplateGraph( RedbackRoleModel model )
{
SimpleGraph templateGraph = generateRoleGraph( model );
SimpleNode rootNode = templateGraph.getNode(ROOT);
for ( ModelApplication application : model.getApplications() )
{
for ( ModelTemplate template : application.getTemplates() )
{
final String templId = template.getId();
SimpleNode templateNode = templateGraph.addNode(templId, templId);
templateNode.addCategory(RoleType.TEMPLATE);
if ((template.getParentRoles() == null || template.getParentRoles().size()==0)
&& ( template.getParentTemplates() == null || template.getParentTemplates().size()==0) ) {
templateGraph.addEdge("root:" + templId, "root -> " + templId, rootNode, templateNode);
}
if ( template.getChildRoles() != null )
{
for ( String childRole : template.getChildRoles() )
{
SimpleNode childNode = templateGraph.addNode(childRole, childRole);
childNode.addCategory(RoleType.ROLE);
templateGraph.addEdge( RoleRelation.TEMPLATE_TO_ROLE, templId+":"+childNode, templId+" -> "+childNode, templateNode, childNode );
}
}
if ( template.getParentRoles() != null )
{
for ( String parentRole : template.getParentRoles() )
{
SimpleNode parentNode = templateGraph.addNode(parentRole, parentRole);
parentNode.addCategory(RoleType.ROLE);
templateGraph.addEdge( RoleRelation.ROLE_TO_TEMPLATE, parentRole+":"+templId,
parentRole+" -> "+templId, parentNode, templateNode);
}
}
if ( template.getChildTemplates() != null )
{
for ( String childTemplate : template.getChildTemplates() )
{
SimpleNode childTemplNode = templateGraph.addNode(childTemplate, childTemplate);
childTemplNode.addCategory(RoleType.TEMPLATE);
templateGraph.addEdge( RoleRelation.TEMPLATE_TO_TEMPLATE, templId+":"+childTemplate,
templId+" -> "+childTemplate, templateNode, childTemplNode);
}
}
if ( template.getParentTemplates() != null )
{
for ( String parentTemplate : template.getParentTemplates() )
{
SimpleNode parentTemplNode = templateGraph.addNode( parentTemplate, parentTemplate );
parentTemplNode.addCategory(RoleType.TEMPLATE);
templateGraph.addEdge( RoleRelation.TEMPLATE_TO_TEMPLATE,
parentTemplate+":"+templId, parentTemplate+" -> "+templId,
parentTemplNode, templateNode);
}
}
}
}
return templateGraph;
}