extensionsUsedInApp.forEach(namespace -> fillDependencyGraph(namespaceDAG, namespace, allExtensionsByNamespace)); GraphIterator<String, DefaultEdge> graphIterator = new TopologicalOrderIterator<>(namespaceDAG); while (graphIterator.hasNext()) { final String namespace = graphIterator.next(); if (allExtensionsByNamespace.containsKey(namespace)) {
public static List<String> calculateParents(Graph<String, DefaultEdge> graph, String currentNode) { List<String> result = new ArrayList<>(); GraphIterator<String, DefaultEdge> it = new DepthFirstIterator<>(graph, currentNode); while (it.hasNext()) { result.add(it.next()); } Collections.reverse(result); return result.subList(0, result.size() - 1); }
public static List<String> calculateParents(Graph<String, DefaultEdge> graph, String currentNode) { List<String> result = new ArrayList<>(); GraphIterator<String, DefaultEdge> it = new DepthFirstIterator<>(graph, currentNode); while (it.hasNext()) { result.add(it.next()); } Collections.reverse(result); return result.subList(0, result.size() - 1); }
public String completePlanTemplate() { LOGGER.debug("Completing BPEL process template..."); /* Traverse the management flow and add the nodes in the order of their execution to a list */ List<Node> managementTaskSeq = new ArrayList<Node>(); GraphIterator<Node, Link> iterator = new DepthFirstIterator<Node, Link>(mangagementFlow); while (iterator.hasNext()) { Node node = iterator.next(); /* In this version the templates do only support management tasks and exclusive gateway */ if (node instanceof ManagementTask) { /* Wrapper adds convenience functions that can be accessed from the Velocity template */ ManagementTaskTemplateWrapper taskWrapper = new ManagementTaskTemplateWrapper((ManagementTask) node); //TODO move to factory and remove setters from constructor managementTaskSeq.add(taskWrapper); } else if (node instanceof Gateway) { managementTaskSeq.add(node); } } VelocityContext context = new VelocityContext(); /* In the Velocity template for each management task an own scope is created containing the variables and * activities required to perform the management task based on the properties of the respective task */ Template planTemplate = Velocity.getTemplate(TEMPLATE_PATH + "bpel_management_plan_template.xml"); context.put("mngmtTaskList", managementTaskSeq); StringWriter planWriter = new StringWriter(); planTemplate.merge(context, planWriter); String bpelProcessContent = planWriter.toString(); LOGGER.debug("Completed BPEL process template" + bpelProcessContent); return bpelProcessContent; }
extensionsUsedInApp.stream().forEach(namespace -> fillDependencyGraph(namespaceDAG, namespace, allExtensionsByNamespace)); GraphIterator<String, DefaultEdge> graphIterator = new TopologicalOrderIterator<>(namespaceDAG); while (graphIterator.hasNext()) { final String namespace = graphIterator.next(); if (allExtensionsByNamespace.containsKey(namespace)) {
private <T> Map<T, SemanticIndexRange> createSemanticIndex(EquivalencesDAG<T> dag) { DirectedGraph<T, DefaultEdge> namedDag = getNamedDAG(dag); // reverse the named dag so that we give smallest indexes to ? DirectedGraph<T, DefaultEdge> reversed = new EdgeReversedGraph<>(namedDag); LinkedList<T> roots = new LinkedList<>(); for (T n : reversed.vertexSet()) if ((reversed.incomingEdgesOf(n)).isEmpty()) roots.add(n); Map<T,SemanticIndexRange> ranges = new HashMap<>(); for (T root: roots) { // depth-first sort GraphIterator<T, DefaultEdge> orderIterator = new DepthFirstIterator<>(reversed, root); // add Listener to create the ranges orderIterator.addTraversalListener(new SemanticIndexer<T>(reversed, ranges)); // System.out.println("\nIndexing:"); while (orderIterator.hasNext()) orderIterator.next(); } return ranges; }
lSpotSelection.add(spot); GraphIterator<Spot, DefaultWeightedEdge> walker = model.getTrackModel().getDepthFirstIterator(spot, false); while (walker.hasNext()) { Spot target = walker.next(); lSpotSelection.add(target);
lSpotSelection.add(spot); GraphIterator<Spot, DefaultWeightedEdge> walker = model.getTrackModel().getDepthFirstIterator(spot, false); while (walker.hasNext()) { Spot target = walker.next(); lSpotSelection.add(target);
private void checkPositions( final GraphIterator< Spot, DefaultWeightedEdge > spots, final double[][] referencePositions ) { final double tolerance = 0.00001; int count = 0; while ( spots.hasNext() ) { final Spot spot = spots.next(); assertTrue( "Position X is as expected ", Math.abs( referencePositions[ count ][ 0 ] - spot.getDoublePosition( 0 ) ) < tolerance ); assertTrue( "Position Y is as expected ", Math.abs( referencePositions[ count ][ 1 ] - spot.getDoublePosition( 1 ) ) < tolerance ); count++; } }
private static void pickLeavesOfOneTrack( final Model model ) { final TimeDirectedNeighborIndex cache = model.getTrackModel().getDirectedNeighborIndex(); final TreeSet< Spot > spots = new TreeSet< >( Spot.frameComparator ); spots.addAll( model.getTrackModel().vertexSet() ); final Spot first = spots.first(); final GraphIterator< Spot, DefaultWeightedEdge > iterator = model.getTrackModel().getDepthFirstIterator( first, true ); while ( iterator.hasNext() ) { final Spot spot = iterator.next(); final boolean isBranching = cache.successorsOf( spot ).size() > 1; if ( isBranching ) { System.out.println( " - " + spot + " is branching to " + cache.successorsOf( spot ).size() + " children." ); } else { final boolean isLeaf = cache.successorsOf( spot ).size() == 0; if ( isLeaf ) { System.out.println( " - " + spot + " is a leaf." ); } else { System.out.println( " - " + spot ); } } } }