abstract class com.google.common.graph.Traverser$Traversal extends java.lang.Object
{
final com.google.common.graph.SuccessorsFunction successorFunction;
void <init>(com.google.common.graph.SuccessorsFunction)
{
com.google.common.graph.Traverser$Traversal v;
com.google.common.graph.SuccessorsFunction v;
v := @this: com.google.common.graph.Traverser$Traversal;
v := @parameter: com.google.common.graph.SuccessorsFunction;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<com.google.common.graph.Traverser$Traversal: com.google.common.graph.SuccessorsFunction successorFunction> = v;
return;
}
static com.google.common.graph.Traverser$Traversal inGraph(com.google.common.graph.SuccessorsFunction)
{
java.util.HashSet v;
com.google.common.graph.SuccessorsFunction v;
com.google.common.graph.Traverser$Traversal$1 v;
v := @parameter: com.google.common.graph.SuccessorsFunction;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = new com.google.common.graph.Traverser$Traversal$1;
specialinvoke v.<com.google.common.graph.Traverser$Traversal$1: void <init>(com.google.common.graph.SuccessorsFunction,java.util.Set)>(v, v);
return v;
}
static com.google.common.graph.Traverser$Traversal inTree(com.google.common.graph.SuccessorsFunction)
{
com.google.common.graph.SuccessorsFunction v;
com.google.common.graph.Traverser$Traversal$2 v;
v := @parameter: com.google.common.graph.SuccessorsFunction;
v = new com.google.common.graph.Traverser$Traversal$2;
specialinvoke v.<com.google.common.graph.Traverser$Traversal$2: void <init>(com.google.common.graph.SuccessorsFunction)>(v);
return v;
}
final java.util.Iterator breadthFirst(java.util.Iterator)
{
java.util.Iterator v, v;
com.google.common.graph.Traverser$InsertionOrder v;
com.google.common.graph.Traverser$Traversal v;
v := @this: com.google.common.graph.Traverser$Traversal;
v := @parameter: java.util.Iterator;
v = <com.google.common.graph.Traverser$InsertionOrder: com.google.common.graph.Traverser$InsertionOrder BACK>;
v = specialinvoke v.<com.google.common.graph.Traverser$Traversal: java.util.Iterator topDown(java.util.Iterator,com.google.common.graph.Traverser$InsertionOrder)>(v, v);
return v;
}
final java.util.Iterator preOrder(java.util.Iterator)
{
java.util.Iterator v, v;
com.google.common.graph.Traverser$InsertionOrder v;
com.google.common.graph.Traverser$Traversal v;
v := @this: com.google.common.graph.Traverser$Traversal;
v := @parameter: java.util.Iterator;
v = <com.google.common.graph.Traverser$InsertionOrder: com.google.common.graph.Traverser$InsertionOrder FRONT>;
v = specialinvoke v.<com.google.common.graph.Traverser$Traversal: java.util.Iterator topDown(java.util.Iterator,com.google.common.graph.Traverser$InsertionOrder)>(v, v);
return v;
}
private java.util.Iterator topDown(java.util.Iterator, com.google.common.graph.Traverser$InsertionOrder)
{
java.util.Iterator v;
com.google.common.graph.Traverser$InsertionOrder v;
com.google.common.graph.Traverser$Traversal v;
java.util.ArrayDeque v;
com.google.common.graph.Traverser$Traversal$3 v;
v := @this: com.google.common.graph.Traverser$Traversal;
v := @parameter: java.util.Iterator;
v := @parameter: com.google.common.graph.Traverser$InsertionOrder;
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>()>();
interfaceinvoke v.<java.util.Deque: boolean add(java.lang.Object)>(v);
v = new com.google.common.graph.Traverser$Traversal$3;
specialinvoke v.<com.google.common.graph.Traverser$Traversal$3: void <init>(com.google.common.graph.Traverser$Traversal,java.util.Deque,com.google.common.graph.Traverser$InsertionOrder)>(v, v, v);
return v;
}
final java.util.Iterator postOrder(java.util.Iterator)
{
java.util.Iterator v;
com.google.common.graph.Traverser$Traversal v;
java.util.ArrayDeque v, v;
com.google.common.graph.Traverser$Traversal$4 v;
v := @this: com.google.common.graph.Traverser$Traversal;
v := @parameter: java.util.Iterator;
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>()>();
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>()>();
interfaceinvoke v.<java.util.Deque: boolean add(java.lang.Object)>(v);
v = new com.google.common.graph.Traverser$Traversal$4;
specialinvoke v.<com.google.common.graph.Traverser$Traversal$4: void <init>(com.google.common.graph.Traverser$Traversal,java.util.Deque,java.util.Deque)>(v, v, v);
return v;
}
abstract java.lang.Object visitNext(java.util.Deque);
}