/** * Get the nodes that are adjacent to this node (only considering outgoing edges). * @return The set of adjacent nodes. */ public Set<DAGNode<V,E>> getAdjacentNodes() { return FluentIterable.from(outgoingEdges) .transform(DAGEdge.<V, E>extractTail()) .toSet(); }
/** * Get the back edge for a particular node and desire, if one exists. * @return The back edge, or {@code null} if no edge exists. * @see #getBackEdges() */ public synchronized DAGNode<Component, Dependency> getBackEdge(DAGNode<Component, Dependency> parent, Desire desire) { Predicate<DAGEdge<?, Dependency>> pred = DAGEdge.labelMatches(Dependency.hasInitialDesire(desire)); return FluentIterable.from(backEdges.get(parent)) .filter(pred) .first() .transform(DAGEdge.<Component, Dependency>extractTail()) .orNull(); }
.transform(DAGEdge.<V,E>extractTail()) .transform(Functions.forMap(mergedMap)) .toSet();
@Override public void describe(DAGNode<Component, Dependency> node, DescriptionWriter description) { node.getLabel().getSatisfaction().visit(new LabelDescriptionVisitor(description)); description.putField("cachePolicy", node.getLabel().getCachePolicy().name()); List<DAGNode<Component, Dependency>> edges = Lists.transform(GraphtUtils.DEP_EDGE_ORDER.sortedCopy(node.getOutgoingEdges()), DAGEdge.<Component,Dependency>extractTail()); description.putList("dependencies", edges, INSTANCE); } }