public class io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl implements io.vertx.ext.shell.term.SockJSTermHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl
  super_class: java.lang.Object
{
  final java.nio.charset.Charset charset;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x0010) ACC_FINAL

  final io.vertx.core.Vertx vertx;
    descriptor: Lio/vertx/core/Vertx;
    flags: (0x0010) ACC_FINAL

  private io.vertx.core.Handler<io.vertx.ext.shell.term.Term> termHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/Term;>;

  private final io.termd.core.readline.Keymap keymap;
    descriptor: Lio/termd/core/readline/Keymap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(io.vertx.core.Vertx, java.nio.charset.Charset, io.termd.core.readline.Keymap);
    descriptor: (Lio/vertx/core/Vertx;Ljava/nio/charset/Charset;Lio/termd/core/readline/Keymap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // java.nio.charset.Charset charset
        start local 3 // io.termd.core.readline.Keymap keymap
         0: .line 55
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 56
            aload 0 /* this */
            aload 2 /* charset */
            putfield io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.charset:Ljava/nio/charset/Charset;
         2: .line 57
            aload 0 /* this */
            aload 1 /* vertx */
            putfield io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.vertx:Lio/vertx/core/Vertx;
         3: .line 58
            aload 0 /* this */
            aload 3 /* keymap */
            putfield io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.keymap:Lio/termd/core/readline/Keymap;
         4: .line 59
            return
        end local 3 // io.termd.core.readline.Keymap keymap
        end local 2 // java.nio.charset.Charset charset
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lio/vertx/ext/shell/term/impl/SockJSTermHandlerImpl;
            0    5     1    vertx  Lio/vertx/core/Vertx;
            0    5     2  charset  Ljava/nio/charset/Charset;
            0    5     3   keymap  Lio/termd/core/readline/Keymap;
    MethodParameters:
         Name  Flags
      vertx    
      charset  
      keymap   

  public io.vertx.ext.shell.term.SockJSTermHandler termHandler(io.vertx.core.Handler<io.vertx.ext.shell.term.Term>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/shell/term/SockJSTermHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 63
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.termHandler:Lio/vertx/core/Handler;
         1: .line 64
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/ext/shell/term/impl/SockJSTermHandlerImpl;
            0    2     1  handler  Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/Term;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/ext/shell/term/Term;>;)Lio/vertx/ext/shell/term/SockJSTermHandler;
    MethodParameters:
         Name  Flags
      handler  

  public void handle(io.vertx.ext.web.handler.sockjs.SockJSSocket);
    descriptor: (Lio/vertx/ext/web/handler/sockjs/SockJSSocket;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl this
        start local 1 // io.vertx.ext.web.handler.sockjs.SockJSSocket socket
         0: .line 69
            aload 0 /* this */
            getfield io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.termHandler:Lio/vertx/core/Handler;
            ifnull 6
         1: .line 70
            new io.vertx.ext.shell.term.impl.SockJSTtyConnection
            dup
            aload 0 /* this */
            getfield io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.charset:Ljava/nio/charset/Charset;
            aload 0 /* this */
            getfield io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
            aload 1 /* socket */
            invokespecial io.vertx.ext.shell.term.impl.SockJSTtyConnection.<init>:(Ljava/nio/charset/Charset;Lio/vertx/core/Context;Lio/vertx/ext/web/handler/sockjs/SockJSSocket;)V
            astore 2 /* conn */
        start local 2 // io.vertx.ext.shell.term.impl.SockJSTtyConnection conn
         2: .line 71
            aload 1 /* socket */
            aload 2 /* conn */
            invokedynamic handle(Lio/vertx/ext/shell/term/impl/SockJSTtyConnection;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/ext/shell/term/impl/SockJSTermHandlerImpl.lambda$0(Lio/vertx/ext/shell/term/impl/SockJSTtyConnection;Lio/vertx/core/buffer/Buffer;)V (6)
                  (Lio/vertx/core/buffer/Buffer;)V
            invokeinterface io.vertx.ext.web.handler.sockjs.SockJSSocket.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/handler/sockjs/SockJSSocket;
            pop
         3: .line 72
            aload 1 /* socket */
            aload 2 /* conn */
            invokedynamic handle(Lio/vertx/ext/shell/term/impl/SockJSTtyConnection;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/ext/shell/term/impl/SockJSTermHandlerImpl.lambda$1(Lio/vertx/ext/shell/term/impl/SockJSTtyConnection;Ljava/lang/Void;)V (6)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.ext.web.handler.sockjs.SockJSSocket.endHandler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/handler/sockjs/SockJSSocket;
            pop
         4: .line 78
            aload 0 /* this */
            getfield io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.termHandler:Lio/vertx/core/Handler;
            new io.vertx.ext.shell.term.impl.TermImpl
            dup
            aload 0 /* this */
            getfield io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.vertx:Lio/vertx/core/Vertx;
            aload 0 /* this */
            getfield io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.keymap:Lio/termd/core/readline/Keymap;
            aload 2 /* conn */
            invokespecial io.vertx.ext.shell.term.impl.TermImpl.<init>:(Lio/vertx/core/Vertx;Lio/termd/core/readline/Keymap;Lio/termd/core/tty/TtyConnection;)V
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 2 // io.vertx.ext.shell.term.impl.SockJSTtyConnection conn
         5: .line 79
            goto 7
         6: .line 80
      StackMap locals:
      StackMap stack:
            aload 1 /* socket */
            invokeinterface io.vertx.ext.web.handler.sockjs.SockJSSocket.close:()V
         7: .line 82
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.ext.web.handler.sockjs.SockJSSocket socket
        end local 0 // io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lio/vertx/ext/shell/term/impl/SockJSTermHandlerImpl;
            0    8     1  socket  Lio/vertx/ext/web/handler/sockjs/SockJSSocket;
            2    5     2    conn  Lio/vertx/ext/shell/term/impl/SockJSTtyConnection;
    MethodParameters:
        Name  Flags
      socket  

  public void handle(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast io.vertx.ext.web.handler.sockjs.SockJSSocket
            invokevirtual io.vertx.ext.shell.term.impl.SockJSTermHandlerImpl.handle:(Lio/vertx/ext/web/handler/sockjs/SockJSSocket;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$0(io.vertx.ext.shell.term.impl.SockJSTtyConnection, io.vertx.core.buffer.Buffer);
    descriptor: (Lio/vertx/ext/shell/term/impl/SockJSTtyConnection;Lio/vertx/core/buffer/Buffer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.core.buffer.Buffer buf
         0: .line 71
            aload 0
            aload 1 /* buf */
            invokeinterface io.vertx.core.buffer.Buffer.toString:()Ljava/lang/String;
            invokevirtual io.vertx.ext.shell.term.impl.SockJSTtyConnection.writeToDecoder:(Ljava/lang/String;)V
            return
        end local 1 // io.vertx.core.buffer.Buffer buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1   buf  Lio/vertx/core/buffer/Buffer;

  private static void lambda$1(io.vertx.ext.shell.term.impl.SockJSTtyConnection, java.lang.Void);
    descriptor: (Lio/vertx/ext/shell/term/impl/SockJSTtyConnection;Ljava/lang/Void;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=2
        start local 1 // java.lang.Void v
         0: .line 73
            aload 0
            invokevirtual io.vertx.ext.shell.term.impl.SockJSTtyConnection.getCloseHandler:()Ljava/util/function/Consumer;
            astore 2 /* closeHandler */
        start local 2 // java.util.function.Consumer closeHandler
         1: .line 74
            aload 2 /* closeHandler */
            ifnull 3
         2: .line 75
            aload 2 /* closeHandler */
            aconst_null
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
        end local 2 // java.util.function.Consumer closeHandler
         3: .line 77
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Void v
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     1             v  Ljava/lang/Void;
            1    3     2  closeHandler  Ljava/util/function/Consumer<Ljava/lang/Void;>;
}
SourceFile: "SockJSTermHandlerImpl.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles