/** * Return the list of labels of successor in order decided by topological sort * * @param label The label of the vertex whose predecessors are searched * @return The list of labels. Returned list contains also the label passed as parameter to this method. This label * should always be the last item in the list. */ public List<String> getSuccessorLabels( final String label ) { final Vertex vertex = getVertex( label ); final List<String> retValue; // optimization. if ( vertex.isLeaf() ) { retValue = new ArrayList<String>( 1 ); retValue.add( label ); } else { retValue = TopologicalSorter.sort( vertex ); } return retValue; }
/** * @param graph * @return List of String (vertex labels) */ public static List<String> sort( final DAG graph ) { return dfs( graph ); }
private static List<String> dfs( final DAG graph ) { // we need to use addFirst method so we will use LinkedList explicitly final List<String> retValue = new LinkedList<String>(); final Map<Vertex, Integer> vertexStateMap = new HashMap<Vertex, Integer>(); for ( Vertex vertex : graph.getVertices() ) { if ( isNotVisited( vertex, vertexStateMap ) ) { dfsVisit( vertex, vertexStateMap, retValue ); } } return retValue; }
ts.sort(); ts.showResult();
public static List<String> sort( final Vertex vertex ) { // we need to use addFirst method so we will use LinkedList explicitly final List<String> retValue = new LinkedList<String>(); dfsVisit( vertex, new HashMap<Vertex, Integer>(), retValue ); return retValue; }
for ( Iterator i = TopologicalSorter.sort( dag ).iterator(); i.hasNext(); )
private static void dfsVisit( final Vertex vertex, final Map<Vertex, Integer> vertexStateMap, final List<String> list ) { vertexStateMap.put( vertex, VISITING ); for ( Vertex v : vertex.getChildren() ) { if ( isNotVisited( v, vertexStateMap ) ) { dfsVisit( v, vertexStateMap, list ); } } vertexStateMap.put( vertex, VISITED ); list.add( vertex.getLabel() ); }
List<String> sortedProjectLabels = TopologicalSorter.sort( dag );
@SuppressWarnings( "unchecked" ) public static List<String> reverseTopologicalSortedRoleList( RedbackRoleModel model ) throws CycleDetectedException { LinkedList<String> sortedGraph = (LinkedList<String>) TopologicalSorter.sort( RoleModelUtils.generateRoleGraph( model ) ); List<String> resortedGraph = new LinkedList<String>(); while ( !sortedGraph.isEmpty() ) { resortedGraph.add( sortedGraph.removeLast() ); } return resortedGraph; }
@SuppressWarnings( "unchecked" ) public static List<String> reverseTopologicalSortedRoleList( RedbackRoleModel model ) throws CycleDetectedException { LinkedList<String> sortedGraph = (LinkedList<String>) TopologicalSorter.sort( RoleModelUtils.generateRoleGraph( model ) ); List<String> resortedGraph = new LinkedList<String>(); while ( !sortedGraph.isEmpty() ) { resortedGraph.add( sortedGraph.removeLast() ); } return resortedGraph; }
for (Object rn : TopologicalSorter.sort(graph)) { Resource r = all.get(rn); if (ResourceType.matches(type, r)) {
List<String> sortedIds = TopologicalSorter.sort( dag );
List<String> sortedIds = TopologicalSorter.sort( dag );
List<String> sortedIds = TopologicalSorter.sort( dag );
log.debug("Ordered classes:"); for (String className : TopologicalSorter.sort(graph)) { ClassDef def = classNames.get(className);
for ( Object o : TopologicalSorter.sort( dag ) )
for ( Object o : TopologicalSorter.sort( dag ) )