public class org.eclipse.jetty.util.TopologicalSort<T>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jetty.util.TopologicalSort
super_class: java.lang.Object
{
private final java.util.Map<T, java.util.Set<T>> _dependencies;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<TT;Ljava/util/Set<TT;>;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.eclipse.jetty.util.TopologicalSort._dependencies:Ljava/util/Map;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jetty/util/TopologicalSort<TT;>;
public void addDependency(T, );
descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jetty.util.TopologicalSort._dependencies:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 3
start local 3 1: aload 3
ifnonnull 4
2: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 3
3: aload 0
getfield org.eclipse.jetty.util.TopologicalSort._dependencies:Ljava/util/Map;
aload 1
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: java.util.Set
StackMap stack:
aload 2
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 8
StackMap locals: org.eclipse.jetty.util.TopologicalSort java.lang.Object java.lang.Object[] java.util.Set top int int java.lang.Object[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: aload 3
aload 4
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 4 7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 6
if_icmplt 5
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jetty/util/TopologicalSort<TT;>;
0 10 1 dependent TT;
0 10 2 dependency [Ljava/lang/Object;
1 10 3 set Ljava/util/Set<TT;>;
6 7 4 d TT;
Signature: (TT;[TT;)V
MethodParameters:
Name Flags
dependent
dependency
public void addBeforeAfter(T, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.eclipse.jetty.util.TopologicalSort.addDependency:(Ljava/lang/Object;[Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jetty/util/TopologicalSort<TT;>;
0 2 1 before TT;
0 2 2 after TT;
Signature: (TT;TT;)V
MethodParameters:
Name Flags
before
after
public void sort();
descriptor: ([Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 3
start local 3 2: new org.eclipse.jetty.util.TopologicalSort$InitialOrderComparator
dup
aload 1
invokespecial org.eclipse.jetty.util.TopologicalSort$InitialOrderComparator.<init>:([Ljava/lang/Object;)V
astore 4
start local 4 3: aload 1
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 7
StackMap locals: org.eclipse.jetty.util.TopologicalSort java.lang.Object[] java.util.List java.util.Set java.util.Comparator top int int java.lang.Object[]
StackMap stack:
4: aload 8
iload 6
aaload
astore 5
start local 5 5: aload 0
aload 5
aload 3
aload 2
aload 4
invokevirtual org.eclipse.jetty.util.TopologicalSort.visit:(Ljava/lang/Object;Ljava/util/Set;Ljava/util/List;Ljava/util/Comparator;)V
end local 5 6: iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
iload 7
if_icmplt 4
8: aload 2
aload 1
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
pop
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jetty/util/TopologicalSort<TT;>;
0 10 1 array [Ljava/lang/Object;
1 10 2 sorted Ljava/util/List<TT;>;
2 10 3 visited Ljava/util/Set<TT;>;
3 10 4 comparator Ljava/util/Comparator<TT;>;
5 6 5 t TT;
Signature: ([TT;)V
MethodParameters:
Name Flags
array
public void sort(java.util.Collection<T>);
descriptor: (Ljava/util/Collection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 3
start local 3 2: new org.eclipse.jetty.util.TopologicalSort$InitialOrderComparator
dup
aload 1
invokespecial org.eclipse.jetty.util.TopologicalSort$InitialOrderComparator.<init>:(Ljava/util/Collection;)V
astore 4
start local 4 3: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 6
StackMap locals: org.eclipse.jetty.util.TopologicalSort java.util.Collection java.util.List java.util.Set java.util.Comparator top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 5
start local 5 5: aload 0
aload 5
aload 3
aload 2
aload 4
invokevirtual org.eclipse.jetty.util.TopologicalSort.visit:(Ljava/lang/Object;Ljava/util/Set;Ljava/util/List;Ljava/util/Comparator;)V
end local 5 6: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 1
invokeinterface java.util.Collection.clear:()V
8: aload 1
aload 2
invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
pop
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jetty/util/TopologicalSort<TT;>;
0 10 1 list Ljava/util/Collection<TT;>;
1 10 2 sorted Ljava/util/List<TT;>;
2 10 3 visited Ljava/util/Set<TT;>;
3 10 4 comparator Ljava/util/Comparator<TT;>;
5 6 5 t TT;
Signature: (Ljava/util/Collection<TT;>;)V
MethodParameters:
Name Flags
list
private void visit(T, java.util.Set<T>, java.util.List<T>, java.util.Comparator<T>);
descriptor: (Ljava/lang/Object;Ljava/util/Set;Ljava/util/List;Ljava/util/Comparator;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 15
1: aload 2
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield org.eclipse.jetty.util.TopologicalSort._dependencies:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 5
start local 5 3: aload 5
ifnull 13
4: new java.util.TreeSet
dup
aload 4
invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
astore 6
start local 6 5: aload 6
aload 5
invokeinterface java.util.SortedSet.addAll:(Ljava/util/Collection;)Z
pop
6: aload 6
invokeinterface java.util.SortedSet.iterator:()Ljava/util/Iterator;
astore 8
goto 9
StackMap locals: org.eclipse.jetty.util.TopologicalSort java.lang.Object java.util.Set java.util.List java.util.Comparator java.util.Set java.util.SortedSet top java.util.Iterator
StackMap stack:
7: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 7
start local 7 8: aload 0
aload 7
aload 2
aload 3
aload 4
invokevirtual org.eclipse.jetty.util.TopologicalSort.visit:(Ljava/lang/Object;Ljava/util/Set;Ljava/util/List;Ljava/util/Comparator;)V
end local 7 9: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: goto 13
11: StackMap locals: org.eclipse.jetty.util.TopologicalSort java.lang.Object java.util.Set java.util.List java.util.Comparator java.util.Set java.util.SortedSet
StackMap stack: org.eclipse.jetty.util.TopologicalSort$CyclicException
astore 7
start local 7 12: new org.eclipse.jetty.util.TopologicalSort$CyclicException
dup
aload 1
aload 7
invokespecial org.eclipse.jetty.util.TopologicalSort$CyclicException.<init>:(Ljava/lang/Object;Lorg/eclipse/jetty/util/TopologicalSort$CyclicException;)V
athrow
end local 7 end local 6 13: StackMap locals:
StackMap stack:
aload 3
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 14: goto 17
15: StackMap locals:
StackMap stack:
aload 3
aload 1
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 17
16: new org.eclipse.jetty.util.TopologicalSort$CyclicException
dup
aload 1
invokespecial org.eclipse.jetty.util.TopologicalSort$CyclicException.<init>:(Ljava/lang/Object;)V
athrow
17: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/eclipse/jetty/util/TopologicalSort<TT;>;
0 18 1 item TT;
0 18 2 visited Ljava/util/Set<TT;>;
0 18 3 sorted Ljava/util/List<TT;>;
0 18 4 comparator Ljava/util/Comparator<TT;>;
3 14 5 dependencies Ljava/util/Set<TT;>;
5 13 6 orderedDeps Ljava/util/SortedSet<TT;>;
8 9 7 d TT;
12 13 7 e Lorg/eclipse/jetty/util/TopologicalSort$CyclicException;
Exception table:
from to target type
6 10 11 Class org.eclipse.jetty.util.TopologicalSort$CyclicException
Signature: (TT;Ljava/util/Set<TT;>;Ljava/util/List<TT;>;Ljava/util/Comparator<TT;>;)V
MethodParameters:
Name Flags
item
visited
sorted
comparator
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "TopologicalSort "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.eclipse.jetty.util.TopologicalSort._dependencies:Ljava/util/Map;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/TopologicalSort<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "TopologicalSort.java"
NestMembers:
org.eclipse.jetty.util.TopologicalSort$CyclicException org.eclipse.jetty.util.TopologicalSort$InitialOrderComparator
InnerClasses:
private CyclicException = org.eclipse.jetty.util.TopologicalSort$CyclicException of org.eclipse.jetty.util.TopologicalSort
private InitialOrderComparator = org.eclipse.jetty.util.TopologicalSort$InitialOrderComparator of org.eclipse.jetty.util.TopologicalSort