public class java.awt.datatransfer.Clipboard
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.awt.datatransfer.Clipboard
  super_class: java.lang.Object
{
  java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  protected java.awt.datatransfer.ClipboardOwner owner;
    descriptor: Ljava/awt/datatransfer/ClipboardOwner;
    flags: (0x0004) ACC_PROTECTED

  protected java.awt.datatransfer.Transferable contents;
    descriptor: Ljava/awt/datatransfer/Transferable;
    flags: (0x0004) ACC_PROTECTED

  private sun.awt.EventListenerAggregate flavorListeners;
    descriptor: Lsun/awt/EventListenerAggregate;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<java.awt.datatransfer.DataFlavor> currentDataFlavors;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/awt/datatransfer/DataFlavor;>;

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.awt.datatransfer.Clipboard this
        start local 1 // java.lang.String name
         0: .line 81
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 82
            aload 0 /* this */
            aload 1 /* name */
            putfield java.awt.datatransfer.Clipboard.name:Ljava/lang/String;
         2: .line 83
            return
        end local 1 // java.lang.String name
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/awt/datatransfer/Clipboard;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.datatransfer.Clipboard this
         0: .line 91
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.name:Ljava/lang/String;
            areturn
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/datatransfer/Clipboard;

  public synchronized void setContents(java.awt.datatransfer.Transferable, java.awt.datatransfer.ClipboardOwner);
    descriptor: (Ljava/awt/datatransfer/Transferable;Ljava/awt/datatransfer/ClipboardOwner;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.awt.datatransfer.Clipboard this
        start local 1 // java.awt.datatransfer.Transferable contents
        start local 2 // java.awt.datatransfer.ClipboardOwner owner
         0: .line 120
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.owner:Ljava/awt/datatransfer/ClipboardOwner;
            astore 3 /* oldOwner */
        start local 3 // java.awt.datatransfer.ClipboardOwner oldOwner
         1: .line 121
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.contents:Ljava/awt/datatransfer/Transferable;
            astore 4 /* oldContents */
        start local 4 // java.awt.datatransfer.Transferable oldContents
         2: .line 123
            aload 0 /* this */
            aload 2 /* owner */
            putfield java.awt.datatransfer.Clipboard.owner:Ljava/awt/datatransfer/ClipboardOwner;
         3: .line 124
            aload 0 /* this */
            aload 1 /* contents */
            putfield java.awt.datatransfer.Clipboard.contents:Ljava/awt/datatransfer/Transferable;
         4: .line 126
            aload 3 /* oldOwner */
            ifnull 6
            aload 3 /* oldOwner */
            aload 2 /* owner */
            if_acmpeq 6
         5: .line 127
            new java.awt.datatransfer.Clipboard$1
            dup
            aload 0 /* this */
            aload 3 /* oldOwner */
            aload 4 /* oldContents */
            invokespecial java.awt.datatransfer.Clipboard$1.<init>:(Ljava/awt/datatransfer/Clipboard;Ljava/awt/datatransfer/ClipboardOwner;Ljava/awt/datatransfer/Transferable;)V
            invokestatic java.awt.EventQueue.invokeLater:(Ljava/lang/Runnable;)V
         6: .line 133
      StackMap locals: java.awt.datatransfer.ClipboardOwner java.awt.datatransfer.Transferable
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.awt.datatransfer.Clipboard.fireFlavorsChanged:()V
         7: .line 134
            return
        end local 4 // java.awt.datatransfer.Transferable oldContents
        end local 3 // java.awt.datatransfer.ClipboardOwner oldOwner
        end local 2 // java.awt.datatransfer.ClipboardOwner owner
        end local 1 // java.awt.datatransfer.Transferable contents
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Ljava/awt/datatransfer/Clipboard;
            0    8     1     contents  Ljava/awt/datatransfer/Transferable;
            0    8     2        owner  Ljava/awt/datatransfer/ClipboardOwner;
            1    8     3     oldOwner  Ljava/awt/datatransfer/ClipboardOwner;
            2    8     4  oldContents  Ljava/awt/datatransfer/Transferable;
    MethodParameters:
          Name  Flags
      contents  
      owner     

  public synchronized java.awt.datatransfer.Transferable getContents(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/awt/datatransfer/Transferable;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.awt.datatransfer.Clipboard this
        start local 1 // java.lang.Object requestor
         0: .line 151
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.contents:Ljava/awt/datatransfer/Transferable;
            areturn
        end local 1 // java.lang.Object requestor
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Ljava/awt/datatransfer/Clipboard;
            0    1     1  requestor  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      requestor  

  public java.awt.datatransfer.DataFlavor[] getAvailableDataFlavors();
    descriptor: ()[Ljava/awt/datatransfer/DataFlavor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.awt.datatransfer.Clipboard this
         0: .line 169
            aload 0 /* this */
            aconst_null
            invokevirtual java.awt.datatransfer.Clipboard.getContents:(Ljava/lang/Object;)Ljava/awt/datatransfer/Transferable;
            astore 1 /* cntnts */
        start local 1 // java.awt.datatransfer.Transferable cntnts
         1: .line 170
            aload 1 /* cntnts */
            ifnonnull 3
         2: .line 171
            iconst_0
            anewarray java.awt.datatransfer.DataFlavor
            areturn
         3: .line 173
      StackMap locals: java.awt.datatransfer.Transferable
      StackMap stack:
            aload 1 /* cntnts */
            invokeinterface java.awt.datatransfer.Transferable.getTransferDataFlavors:()[Ljava/awt/datatransfer/DataFlavor;
            areturn
        end local 1 // java.awt.datatransfer.Transferable cntnts
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljava/awt/datatransfer/Clipboard;
            1    4     1  cntnts  Ljava/awt/datatransfer/Transferable;

  public boolean isDataFlavorAvailable(java.awt.datatransfer.DataFlavor);
    descriptor: (Ljava/awt/datatransfer/DataFlavor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.awt.datatransfer.Clipboard this
        start local 1 // java.awt.datatransfer.DataFlavor flavor
         0: .line 192
            aload 1 /* flavor */
            ifnonnull 2
         1: .line 193
            new java.lang.NullPointerException
            dup
            ldc "flavor"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual java.awt.datatransfer.Clipboard.getContents:(Ljava/lang/Object;)Ljava/awt/datatransfer/Transferable;
            astore 2 /* cntnts */
        start local 2 // java.awt.datatransfer.Transferable cntnts
         3: .line 197
            aload 2 /* cntnts */
            ifnonnull 5
         4: .line 198
            iconst_0
            ireturn
         5: .line 200
      StackMap locals: java.awt.datatransfer.Transferable
      StackMap stack:
            aload 2 /* cntnts */
            aload 1 /* flavor */
            invokeinterface java.awt.datatransfer.Transferable.isDataFlavorSupported:(Ljava/awt/datatransfer/DataFlavor;)Z
            ireturn
        end local 2 // java.awt.datatransfer.Transferable cntnts
        end local 1 // java.awt.datatransfer.DataFlavor flavor
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/awt/datatransfer/Clipboard;
            0    6     1  flavor  Ljava/awt/datatransfer/DataFlavor;
            3    6     2  cntnts  Ljava/awt/datatransfer/Transferable;
    MethodParameters:
        Name  Flags
      flavor  

  public java.lang.Object getData(java.awt.datatransfer.DataFlavor);
    descriptor: (Ljava/awt/datatransfer/DataFlavor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.awt.datatransfer.Clipboard this
        start local 1 // java.awt.datatransfer.DataFlavor flavor
         0: .line 227
            aload 1 /* flavor */
            ifnonnull 2
         1: .line 228
            new java.lang.NullPointerException
            dup
            ldc "flavor"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual java.awt.datatransfer.Clipboard.getContents:(Ljava/lang/Object;)Ljava/awt/datatransfer/Transferable;
            astore 2 /* cntnts */
        start local 2 // java.awt.datatransfer.Transferable cntnts
         3: .line 232
            aload 2 /* cntnts */
            ifnonnull 5
         4: .line 233
            new java.awt.datatransfer.UnsupportedFlavorException
            dup
            aload 1 /* flavor */
            invokespecial java.awt.datatransfer.UnsupportedFlavorException.<init>:(Ljava/awt/datatransfer/DataFlavor;)V
            athrow
         5: .line 235
      StackMap locals: java.awt.datatransfer.Transferable
      StackMap stack:
            aload 2 /* cntnts */
            aload 1 /* flavor */
            invokeinterface java.awt.datatransfer.Transferable.getTransferData:(Ljava/awt/datatransfer/DataFlavor;)Ljava/lang/Object;
            areturn
        end local 2 // java.awt.datatransfer.Transferable cntnts
        end local 1 // java.awt.datatransfer.DataFlavor flavor
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/awt/datatransfer/Clipboard;
            0    6     1  flavor  Ljava/awt/datatransfer/DataFlavor;
            3    6     2  cntnts  Ljava/awt/datatransfer/Transferable;
    Exceptions:
      throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
    MethodParameters:
        Name  Flags
      flavor  

  public synchronized void addFlavorListener(java.awt.datatransfer.FlavorListener);
    descriptor: (Ljava/awt/datatransfer/FlavorListener;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.awt.datatransfer.Clipboard this
        start local 1 // java.awt.datatransfer.FlavorListener listener
         0: .line 254
            aload 1 /* listener */
            ifnonnull 2
         1: .line 255
            return
         2: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.flavorListeners:Lsun/awt/EventListenerAggregate;
            ifnonnull 5
         3: .line 258
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.awt.datatransfer.Clipboard.getAvailableDataFlavorSet:()Ljava/util/Set;
            putfield java.awt.datatransfer.Clipboard.currentDataFlavors:Ljava/util/Set;
         4: .line 259
            aload 0 /* this */
            new sun.awt.EventListenerAggregate
            dup
            ldc Ljava/awt/datatransfer/FlavorListener;
            invokespecial sun.awt.EventListenerAggregate.<init>:(Ljava/lang/Class;)V
            putfield java.awt.datatransfer.Clipboard.flavorListeners:Lsun/awt/EventListenerAggregate;
         5: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.flavorListeners:Lsun/awt/EventListenerAggregate;
            aload 1 /* listener */
            invokevirtual sun.awt.EventListenerAggregate.add:(Ljava/util/EventListener;)V
         6: .line 262
            return
        end local 1 // java.awt.datatransfer.FlavorListener listener
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljava/awt/datatransfer/Clipboard;
            0    7     1  listener  Ljava/awt/datatransfer/FlavorListener;
    MethodParameters:
          Name  Flags
      listener  

  public synchronized void removeFlavorListener(java.awt.datatransfer.FlavorListener);
    descriptor: (Ljava/awt/datatransfer/FlavorListener;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.awt.datatransfer.Clipboard this
        start local 1 // java.awt.datatransfer.FlavorListener listener
         0: .line 282
            aload 1 /* listener */
            ifnull 1
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.flavorListeners:Lsun/awt/EventListenerAggregate;
            ifnonnull 2
         1: .line 283
      StackMap locals:
      StackMap stack:
            return
         2: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.flavorListeners:Lsun/awt/EventListenerAggregate;
            aload 1 /* listener */
            invokevirtual sun.awt.EventListenerAggregate.remove:(Ljava/util/EventListener;)Z
            pop
         3: .line 286
            return
        end local 1 // java.awt.datatransfer.FlavorListener listener
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljava/awt/datatransfer/Clipboard;
            0    4     1  listener  Ljava/awt/datatransfer/FlavorListener;
    MethodParameters:
          Name  Flags
      listener  

  public synchronized java.awt.datatransfer.FlavorListener[] getFlavorListeners();
    descriptor: ()[Ljava/awt/datatransfer/FlavorListener;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.datatransfer.Clipboard this
         0: .line 301
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.flavorListeners:Lsun/awt/EventListenerAggregate;
            ifnonnull 1
            iconst_0
            anewarray java.awt.datatransfer.FlavorListener
            goto 2
         1: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.flavorListeners:Lsun/awt/EventListenerAggregate;
            invokevirtual sun.awt.EventListenerAggregate.getListenersCopy:()[Ljava/util/EventListener;
            checkcast java.awt.datatransfer.FlavorListener[]
         2: .line 301
      StackMap locals:
      StackMap stack: java.awt.datatransfer.FlavorListener[]
            areturn
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/awt/datatransfer/Clipboard;

  private void fireFlavorsChanged();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.awt.datatransfer.Clipboard this
         0: .line 313
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.flavorListeners:Lsun/awt/EventListenerAggregate;
            ifnonnull 2
         1: .line 314
            return
         2: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.currentDataFlavors:Ljava/util/Set;
            astore 1 /* prevDataFlavors */
        start local 1 // java.util.Set prevDataFlavors
         3: .line 317
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.awt.datatransfer.Clipboard.getAvailableDataFlavorSet:()Ljava/util/Set;
            putfield java.awt.datatransfer.Clipboard.currentDataFlavors:Ljava/util/Set;
         4: .line 318
            aload 1 /* prevDataFlavors */
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.currentDataFlavors:Ljava/util/Set;
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 319
            return
         6: .line 322
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.datatransfer.Clipboard.flavorListeners:Lsun/awt/EventListenerAggregate;
            invokevirtual sun.awt.EventListenerAggregate.getListenersInternal:()[Ljava/util/EventListener;
            checkcast java.awt.datatransfer.FlavorListener[]
         7: .line 321
            astore 2 /* flavorListenerArray */
        start local 2 // java.awt.datatransfer.FlavorListener[] flavorListenerArray
         8: .line 323
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         9: goto 13
        10: .line 324
      StackMap locals: java.awt.datatransfer.FlavorListener[] int
      StackMap stack:
            aload 2 /* flavorListenerArray */
            iload 3 /* i */
            aaload
            astore 4 /* listener */
        start local 4 // java.awt.datatransfer.FlavorListener listener
        11: .line 325
            new java.awt.datatransfer.Clipboard$2
            dup
            aload 0 /* this */
            aload 4 /* listener */
            invokespecial java.awt.datatransfer.Clipboard$2.<init>:(Ljava/awt/datatransfer/Clipboard;Ljava/awt/datatransfer/FlavorListener;)V
            invokestatic java.awt.EventQueue.invokeLater:(Ljava/lang/Runnable;)V
        end local 4 // java.awt.datatransfer.FlavorListener listener
        12: .line 323
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* i */
            aload 2 /* flavorListenerArray */
            arraylength
            if_icmplt 10
        end local 3 // int i
        14: .line 331
            return
        end local 2 // java.awt.datatransfer.FlavorListener[] flavorListenerArray
        end local 1 // java.util.Set prevDataFlavors
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   15     0                 this  Ljava/awt/datatransfer/Clipboard;
            3   15     1      prevDataFlavors  Ljava/util/Set<Ljava/awt/datatransfer/DataFlavor;>;
            8   15     2  flavorListenerArray  [Ljava/awt/datatransfer/FlavorListener;
            9   14     3                    i  I
           11   12     4             listener  Ljava/awt/datatransfer/FlavorListener;

  private java.util.Set<java.awt.datatransfer.DataFlavor> getAvailableDataFlavorSet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.awt.datatransfer.Clipboard this
         0: .line 343
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* set */
        start local 1 // java.util.Set set
         1: .line 344
            aload 0 /* this */
            aconst_null
            invokevirtual java.awt.datatransfer.Clipboard.getContents:(Ljava/lang/Object;)Ljava/awt/datatransfer/Transferable;
            astore 2 /* contents */
        start local 2 // java.awt.datatransfer.Transferable contents
         2: .line 345
            aload 2 /* contents */
            ifnull 6
         3: .line 346
            aload 2 /* contents */
            invokeinterface java.awt.datatransfer.Transferable.getTransferDataFlavors:()[Ljava/awt/datatransfer/DataFlavor;
            astore 3 /* flavors */
        start local 3 // java.awt.datatransfer.DataFlavor[] flavors
         4: .line 347
            aload 3 /* flavors */
            ifnull 6
         5: .line 348
            aload 1 /* set */
            aload 3 /* flavors */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 3 // java.awt.datatransfer.DataFlavor[] flavors
         6: .line 351
      StackMap locals: java.util.Set java.awt.datatransfer.Transferable
      StackMap stack:
            aload 1 /* set */
            areturn
        end local 2 // java.awt.datatransfer.Transferable contents
        end local 1 // java.util.Set set
        end local 0 // java.awt.datatransfer.Clipboard this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljava/awt/datatransfer/Clipboard;
            1    7     1       set  Ljava/util/Set<Ljava/awt/datatransfer/DataFlavor;>;
            2    7     2  contents  Ljava/awt/datatransfer/Transferable;
            4    6     3   flavors  [Ljava/awt/datatransfer/DataFlavor;
    Signature: ()Ljava/util/Set<Ljava/awt/datatransfer/DataFlavor;>;
}
SourceFile: "Clipboard.java"
NestMembers:
  java.awt.datatransfer.Clipboard$1  java.awt.datatransfer.Clipboard$2
InnerClasses:
  java.awt.datatransfer.Clipboard$1
  java.awt.datatransfer.Clipboard$2