class com.oracle.svm.driver.ServerOptionHandler extends com.oracle.svm.driver.NativeImage$OptionHandler<com.oracle.svm.driver.NativeImageServer>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.svm.driver.ServerOptionHandler
  super_class: com.oracle.svm.driver.NativeImage$OptionHandler
{
  private static final java.lang.String helpTextServer;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String enableServerOption;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--experimental-build-server"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 32
            ldc "/HelpServer.txt"
            invokestatic com.oracle.svm.driver.NativeImage.getResource:(Ljava/lang/String;)Ljava/lang/String;
            putstatic com.oracle.svm.driver.ServerOptionHandler.helpTextServer:Ljava/lang/String;
         1: .line 33
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.svm.driver.NativeImageServer);
    descriptor: (Lcom/oracle/svm/driver/NativeImageServer;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.driver.ServerOptionHandler this
        start local 1 // com.oracle.svm.driver.NativeImageServer nativeImage
         0: .line 36
            aload 0 /* this */
            aload 1 /* nativeImage */
            invokespecial com.oracle.svm.driver.NativeImage$OptionHandler.<init>:(Lcom/oracle/svm/driver/NativeImage;)V
         1: .line 37
            return
        end local 1 // com.oracle.svm.driver.NativeImageServer nativeImage
        end local 0 // com.oracle.svm.driver.ServerOptionHandler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/oracle/svm/driver/ServerOptionHandler;
            0    2     1  nativeImage  Lcom/oracle/svm/driver/NativeImageServer;
    MethodParameters:
             Name  Flags
      nativeImage  

  public boolean consume(java.util.Queue<java.lang.String>);
    descriptor: (Ljava/util/Queue;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=15, args_size=2
        start local 0 // com.oracle.svm.driver.ServerOptionHandler this
        start local 1 // java.util.Queue args
         0: .line 41
            aload 1 /* args */
            invokeinterface java.util.Queue.peek:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* headArg */
        start local 2 // java.lang.String headArg
         1: .line 42
            aload 2 /* headArg */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
          -1380878450: 2
           -207548625: 3
           1166685787: 4
           2098358951: 5
              default: 21
          }
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         2: aload 3
            ldc "--verbose-server"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            goto 21
      StackMap locals:
      StackMap stack:
         3: aload 3
            ldc "--no-server"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 21
      StackMap locals:
      StackMap stack:
         4: aload 3
            ldc "--help-experimental-build-server"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 21
      StackMap locals:
      StackMap stack:
         5: aload 3
            ldc "--experimental-build-server"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
            goto 21
         6: .line 44
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            pop
         7: .line 45
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            getstatic com.oracle.svm.driver.ServerOptionHandler.helpTextServer:Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showMessage:(Ljava/lang/String;)V
         8: .line 46
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            invokevirtual com.oracle.svm.driver.NativeImageServer.showNewline:()V
         9: .line 47
            iconst_0
            invokestatic java.lang.System.exit:(I)V
        10: .line 48
            iconst_1
            ireturn
        11: .line 50
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            pop
        12: .line 51
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            iconst_0
            invokevirtual com.oracle.svm.driver.NativeImageServer.setUseServer:(Z)V
        13: .line 52
            iconst_1
            ireturn
        14: .line 54
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            pop
        15: .line 55
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            invokevirtual com.oracle.svm.driver.NativeImageServer.isDryRun:()Z
            ifne 17
        16: .line 56
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            iconst_1
            invokevirtual com.oracle.svm.driver.NativeImageServer.setUseServer:(Z)V
        17: .line 58
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        18: .line 60
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            pop
        19: .line 61
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            iconst_1
            invokevirtual com.oracle.svm.driver.NativeImageServer.setVerboseServer:(Z)V
        20: .line 62
            iconst_1
            ireturn
        21: .line 65
      StackMap locals:
      StackMap stack:
            aload 2 /* headArg */
            ldc "--server-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 67
        22: .line 66
            aload 1 /* args */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            checkcast java.lang.String
            ldc "--server-"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* optionTail */
        start local 4 // java.lang.String optionTail
        23: .line 67
            iconst_0
            istore 5 /* machineWide */
        start local 5 // boolean machineWide
        24: .line 68
            ldc "list"
            astore 6 /* oList */
        start local 6 // java.lang.String oList
        25: .line 69
            ldc "cleanup"
            astore 7 /* oCleanup */
        start local 7 // java.lang.String oCleanup
        26: .line 70
            ldc "shutdown"
            astore 8 /* oShutdown */
        start local 8 // java.lang.String oShutdown
        27: .line 71
            ldc "wipe"
            astore 9 /* oWipe */
        start local 9 // java.lang.String oWipe
        28: .line 72
            ldc "session="
            astore 10 /* oSession */
        start local 10 // java.lang.String oSession
        29: .line 73
            iconst_0
            istore 11 /* serverCleanup */
        start local 11 // boolean serverCleanup
        30: .line 74
            iconst_0
            istore 12 /* serverShutdown */
        start local 12 // boolean serverShutdown
        31: .line 75
            aload 4 /* optionTail */
            aload 6 /* oList */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 43
        32: .line 76
            aload 4 /* optionTail */
            aload 6 /* oList */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* optionTail */
        33: .line 77
            iconst_0
            istore 13 /* listDetails */
        start local 13 // boolean listDetails
        34: .line 78
            iconst_1
            istore 5 /* machineWide */
        35: .line 79
            ldc "-details"
            astore 14 /* oDetails */
        start local 14 // java.lang.String oDetails
        36: .line 80
            aload 4 /* optionTail */
            aload 14 /* oDetails */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 39
        37: .line 81
            aload 4 /* optionTail */
            aload 14 /* oDetails */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* optionTail */
        38: .line 82
            iconst_1
            istore 13 /* listDetails */
        39: .line 84
      StackMap locals: com.oracle.svm.driver.ServerOptionHandler java.util.Queue java.lang.String top java.lang.String int java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String int int int java.lang.String
      StackMap stack:
            aload 4 /* optionTail */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 63
        40: .line 85
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            iload 5 /* machineWide */
            iload 13 /* listDetails */
            invokevirtual com.oracle.svm.driver.NativeImageServer.listServers:(ZZ)V
        41: .line 86
            iconst_0
            invokestatic java.lang.System.exit:(I)V
        end local 14 // java.lang.String oDetails
        end local 13 // boolean listDetails
        42: .line 88
            goto 63
      StackMap locals:
      StackMap stack:
        43: aload 4 /* optionTail */
            aload 7 /* oCleanup */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 48
        44: .line 89
            aload 4 /* optionTail */
            aload 7 /* oCleanup */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* optionTail */
        45: .line 90
            iconst_1
            istore 11 /* serverCleanup */
        46: .line 91
            iconst_1
            istore 5 /* machineWide */
        47: .line 92
            goto 63
      StackMap locals:
      StackMap stack:
        48: aload 4 /* optionTail */
            aload 8 /* oShutdown */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 56
        49: .line 93
            aload 4 /* optionTail */
            aload 8 /* oShutdown */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* optionTail */
        50: .line 94
            iconst_1
            istore 12 /* serverShutdown */
        51: .line 95
            ldc "-all"
            astore 13 /* oAll */
        start local 13 // java.lang.String oAll
        52: .line 96
            aload 4 /* optionTail */
            aload 13 /* oAll */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 63
        53: .line 97
            aload 4 /* optionTail */
            aload 13 /* oAll */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* optionTail */
        54: .line 98
            iconst_1
            istore 5 /* machineWide */
        end local 13 // java.lang.String oAll
        55: .line 100
            goto 63
      StackMap locals:
      StackMap stack:
        56: aload 4 /* optionTail */
            aload 9 /* oWipe */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 60
        57: .line 101
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            invokevirtual com.oracle.svm.driver.NativeImageServer.wipeMachineDir:()V
        58: .line 102
            iconst_0
            invokestatic java.lang.System.exit:(I)V
        59: .line 103
            goto 63
      StackMap locals:
      StackMap stack:
        60: aload 4 /* optionTail */
            aload 10 /* oSession */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 63
        61: .line 104
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            aload 4 /* optionTail */
            aload 10 /* oSession */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.setSessionName:(Ljava/lang/String;)V
        62: .line 105
            iconst_1
            ireturn
        63: .line 107
      StackMap locals:
      StackMap stack:
            aload 4 /* optionTail */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 66
            iload 11 /* serverCleanup */
            ifne 64
            iload 12 /* serverShutdown */
            ifeq 66
        64: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            iload 12 /* serverShutdown */
            iload 5 /* machineWide */
            iconst_0
            invokevirtual com.oracle.svm.driver.NativeImageServer.cleanupServers:(ZZZ)Ljava/util/List;
            pop
        65: .line 109
            iconst_0
            invokestatic java.lang.System.exit:(I)V
        66: .line 111
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Invalid server option: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* headArg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.driver.NativeImage.showError:(Ljava/lang/String;)Ljava/lang/Error;
            pop
        end local 12 // boolean serverShutdown
        end local 11 // boolean serverCleanup
        end local 10 // java.lang.String oSession
        end local 9 // java.lang.String oWipe
        end local 8 // java.lang.String oShutdown
        end local 7 // java.lang.String oCleanup
        end local 6 // java.lang.String oList
        end local 5 // boolean machineWide
        end local 4 // java.lang.String optionTail
        67: .line 113
      StackMap locals: com.oracle.svm.driver.ServerOptionHandler java.util.Queue java.lang.String
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.String headArg
        end local 1 // java.util.Queue args
        end local 0 // com.oracle.svm.driver.ServerOptionHandler this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   68     0            this  Lcom/oracle/svm/driver/ServerOptionHandler;
            0   68     1            args  Ljava/util/Queue<Ljava/lang/String;>;
            1   68     2         headArg  Ljava/lang/String;
           23   67     4      optionTail  Ljava/lang/String;
           24   67     5     machineWide  Z
           25   67     6           oList  Ljava/lang/String;
           26   67     7        oCleanup  Ljava/lang/String;
           27   67     8       oShutdown  Ljava/lang/String;
           28   67     9           oWipe  Ljava/lang/String;
           29   67    10        oSession  Ljava/lang/String;
           30   67    11   serverCleanup  Z
           31   67    12  serverShutdown  Z
           34   42    13     listDetails  Z
           36   42    14        oDetails  Ljava/lang/String;
           52   55    13            oAll  Ljava/lang/String;
    Signature: (Ljava/util/Queue<Ljava/lang/String;>;)Z
    MethodParameters:
      Name  Flags
      args  

  void addFallbackBuildArgs(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.driver.ServerOptionHandler this
        start local 1 // java.util.List buildArgs
         0: .line 118
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            invokevirtual com.oracle.svm.driver.NativeImageServer.useServer:()Z
            ifne 2
         1: .line 119
            aload 1 /* buildArgs */
            ldc "--no-server"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.driver.ServerOptionHandler.nativeImage:Lcom/oracle/svm/driver/NativeImage;
            checkcast com.oracle.svm.driver.NativeImageServer
            invokevirtual com.oracle.svm.driver.NativeImageServer.verboseServer:()Z
            ifeq 4
         3: .line 122
            aload 1 /* buildArgs */
            ldc "--verbose-server"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 124
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List buildArgs
        end local 0 // com.oracle.svm.driver.ServerOptionHandler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/svm/driver/ServerOptionHandler;
            0    5     1  buildArgs  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
           Name  Flags
      buildArgs  
}
Signature: Lcom/oracle/svm/driver/NativeImage$OptionHandler<Lcom/oracle/svm/driver/NativeImageServer;>;
SourceFile: "ServerOptionHandler.java"
InnerClasses:
  abstract OptionHandler = com.oracle.svm.driver.NativeImage$OptionHandler of com.oracle.svm.driver.NativeImage
  private final Server = com.oracle.svm.driver.NativeImageServer$Server of com.oracle.svm.driver.NativeImageServer