final class com.sun.javafx.collections.ElementObserver<E>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.javafx.collections.ElementObserver
super_class: java.lang.Object
{
private javafx.util.Callback<E, javafx.beans.Observable[]> ;
descriptor: Ljavafx/util/Callback;
flags: (0x0002) ACC_PRIVATE
Signature: Ljavafx/util/Callback<TE;[Ljavafx/beans/Observable;>;
private final javafx.util.Callback<E, javafx.beans.InvalidationListener> listenerGenerator;
descriptor: Ljavafx/util/Callback;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljavafx/util/Callback<TE;Ljavafx/beans/InvalidationListener;>;
private final javafx.collections.ObservableListBase<E> list;
descriptor: Ljavafx/collections/ObservableListBase;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljavafx/collections/ObservableListBase<TE;>;
private java.util.IdentityHashMap<E, com.sun.javafx.collections.ElementObserver$ElementsMapElement> elementsMap;
descriptor: Ljava/util/IdentityHashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/IdentityHashMap<TE;Lcom/sun/javafx/collections/ElementObserver$ElementsMapElement;>;
void <init>(javafx.util.Callback<E, javafx.beans.Observable[]>, javafx.util.Callback<E, javafx.beans.InvalidationListener>, javafx.collections.ObservableListBase<E>);
descriptor: (Ljavafx/util/Callback;Ljavafx/util/Callback;Ljavafx/collections/ObservableListBase;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new java.util.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
putfield com.sun.javafx.collections.ElementObserver.elementsMap:Ljava/util/IdentityHashMap;
3: aload 0
aload 1
putfield com.sun.javafx.collections.ElementObserver.extractor:Ljavafx/util/Callback;
4: aload 0
aload 2
putfield com.sun.javafx.collections.ElementObserver.listenerGenerator:Ljavafx/util/Callback;
5: aload 0
aload 3
putfield com.sun.javafx.collections.ElementObserver.list:Ljavafx/collections/ObservableListBase;
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/javafx/collections/ElementObserver<TE;>;
0 7 1 extractor Ljavafx/util/Callback<TE;[Ljavafx/beans/Observable;>;
0 7 2 listenerGenerator Ljavafx/util/Callback<TE;Ljavafx/beans/InvalidationListener;>;
0 7 3 list Ljavafx/collections/ObservableListBase<TE;>;
Signature: (Ljavafx/util/Callback<TE;[Ljavafx/beans/Observable;>;Ljavafx/util/Callback<TE;Ljavafx/beans/InvalidationListener;>;Ljavafx/collections/ObservableListBase<TE;>;)V
MethodParameters:
Name Flags
extractor
listenerGenerator
list
void attachListener();
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.javafx.collections.ElementObserver.elementsMap:Ljava/util/IdentityHashMap;
ifnull 11
aload 1
ifnull 11
1: aload 0
getfield com.sun.javafx.collections.ElementObserver.elementsMap:Ljava/util/IdentityHashMap;
aload 1
invokevirtual java.util.IdentityHashMap.containsKey:(Ljava/lang/Object;)Z
ifeq 4
2: aload 0
getfield com.sun.javafx.collections.ElementObserver.elementsMap:Ljava/util/IdentityHashMap;
aload 1
invokevirtual java.util.IdentityHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.javafx.collections.ElementObserver$ElementsMapElement
invokevirtual com.sun.javafx.collections.ElementObserver$ElementsMapElement.increment:()V
3: goto 11
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.javafx.collections.ElementObserver.listenerGenerator:Ljavafx/util/Callback;
aload 1
invokeinterface javafx.util.Callback.call:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javafx.beans.InvalidationListener
astore 2
start local 2 5: aload 0
getfield com.sun.javafx.collections.ElementObserver.extractor:Ljavafx/util/Callback;
aload 1
invokeinterface javafx.util.Callback.call:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javafx.beans.Observable[]
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 9
StackMap locals: com.sun.javafx.collections.ElementObserver java.lang.Object javafx.beans.InvalidationListener top int int javafx.beans.Observable[]
StackMap stack:
6: aload 6
iload 4
aaload
astore 3
start local 3 7: aload 3
aload 2
invokeinterface javafx.beans.Observable.addListener:(Ljavafx/beans/InvalidationListener;)V
end local 3 8: iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 5
if_icmplt 6
10: aload 0
getfield com.sun.javafx.collections.ElementObserver.elementsMap:Ljava/util/IdentityHashMap;
aload 1
new com.sun.javafx.collections.ElementObserver$ElementsMapElement
dup
aload 2
invokespecial com.sun.javafx.collections.ElementObserver$ElementsMapElement.<init>:(Ljavafx/beans/InvalidationListener;)V
invokevirtual java.util.IdentityHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 2 11: StackMap locals: com.sun.javafx.collections.ElementObserver java.lang.Object
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/javafx/collections/ElementObserver<TE;>;
0 12 1 e TE;
5 11 2 listener Ljavafx/beans/InvalidationListener;
7 8 3 o Ljavafx/beans/Observable;
Signature: (TE;)V
MethodParameters:
Name Flags
e final
void detachListener();
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.javafx.collections.ElementObserver.elementsMap:Ljava/util/IdentityHashMap;
ifnull 9
aload 1
ifnull 9
1: aload 0
getfield com.sun.javafx.collections.ElementObserver.elementsMap:Ljava/util/IdentityHashMap;
aload 1
invokevirtual java.util.IdentityHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.javafx.collections.ElementObserver$ElementsMapElement
astore 2
start local 2 2: aload 0
getfield com.sun.javafx.collections.ElementObserver.extractor:Ljavafx/util/Callback;
aload 1
invokeinterface javafx.util.Callback.call:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javafx.beans.Observable[]
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: com.sun.javafx.collections.ElementObserver java.lang.Object com.sun.javafx.collections.ElementObserver$ElementsMapElement top int int javafx.beans.Observable[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 3
aload 2
invokevirtual com.sun.javafx.collections.ElementObserver$ElementsMapElement.getListener:()Ljavafx/beans/InvalidationListener;
invokeinterface javafx.beans.Observable.removeListener:(Ljavafx/beans/InvalidationListener;)V
end local 3 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 3
7: aload 2
invokevirtual com.sun.javafx.collections.ElementObserver$ElementsMapElement.decrement:()I
ifne 9
8: aload 0
getfield com.sun.javafx.collections.ElementObserver.elementsMap:Ljava/util/IdentityHashMap;
aload 1
invokevirtual java.util.IdentityHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 2 9: StackMap locals: com.sun.javafx.collections.ElementObserver java.lang.Object
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/javafx/collections/ElementObserver<TE;>;
0 10 1 e TE;
2 9 2 el Lcom/sun/javafx/collections/ElementObserver$ElementsMapElement;
4 5 3 o Ljavafx/beans/Observable;
Signature: (TE;)V
MethodParameters:
Name Flags
e
}
Signature: <E:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "ElementObserver.java"
NestMembers:
com.sun.javafx.collections.ElementObserver$ElementsMapElement
InnerClasses:
private ElementsMapElement = com.sun.javafx.collections.ElementObserver$ElementsMapElement of com.sun.javafx.collections.ElementObserver