public static SimpleGraph generateTemplateGraph()

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