public class com.googlecode.lanterna.input.InputDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.googlecode.lanterna.input.InputDecoder
super_class: java.lang.Object
{
private final java.io.Reader source;
descriptor: Ljava/io/Reader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<com.googlecode.lanterna.input.CharacterPattern> bytePatterns;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/googlecode/lanterna/input/CharacterPattern;>;
private final java.util.List<java.lang.Character> currentMatching;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/Character;>;
private boolean seenEOF;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int timeoutUnits;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>(java.io.Reader);
descriptor: (Ljava/io/Reader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.io.BufferedReader
dup
aload 1
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
putfield com.googlecode.lanterna.input.InputDecoder.source:Ljava/io/Reader;
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.googlecode.lanterna.input.InputDecoder.bytePatterns:Ljava/util/List;
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.googlecode.lanterna.input.InputDecoder.currentMatching:Ljava/util/List;
4: aload 0
iconst_0
putfield com.googlecode.lanterna.input.InputDecoder.seenEOF:Z
5: aload 0
iconst_0
putfield com.googlecode.lanterna.input.InputDecoder.timeoutUnits:I
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/googlecode/lanterna/input/InputDecoder;
0 7 1 source Ljava/io/Reader;
MethodParameters:
Name Flags
source final
public void addProfile(com.googlecode.lanterna.input.KeyDecodingProfile);
descriptor: (Lcom/googlecode/lanterna/input/KeyDecodingProfile;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.googlecode.lanterna.input.KeyDecodingProfile.getPatterns:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 9
StackMap locals: com.googlecode.lanterna.input.InputDecoder com.googlecode.lanterna.input.KeyDecodingProfile top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.googlecode.lanterna.input.CharacterPattern
astore 2
start local 2 2: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.bytePatterns:Ljava/util/List;
dup
astore 4
monitorenter
3: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.bytePatterns:Ljava/util/List;
aload 2
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.bytePatterns:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 4
monitorexit
6: goto 9
StackMap locals: com.googlecode.lanterna.input.InputDecoder com.googlecode.lanterna.input.KeyDecodingProfile com.googlecode.lanterna.input.CharacterPattern java.util.Iterator java.util.List
StackMap stack: java.lang.Throwable
7: aload 4
monitorexit
8: athrow
end local 2 9: StackMap locals: com.googlecode.lanterna.input.InputDecoder com.googlecode.lanterna.input.KeyDecodingProfile top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/googlecode/lanterna/input/InputDecoder;
0 11 1 profile Lcom/googlecode/lanterna/input/KeyDecodingProfile;
2 9 2 pattern Lcom/googlecode/lanterna/input/CharacterPattern;
Exception table:
from to target type
3 6 7 any
7 8 7 any
MethodParameters:
Name Flags
profile
public synchronized java.util.Collection<com.googlecode.lanterna.input.CharacterPattern> getPatterns();
descriptor: ()Ljava/util/Collection;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.bytePatterns:Ljava/util/List;
dup
astore 1
monitorenter
1: new java.util.ArrayList
dup
aload 0
getfield com.googlecode.lanterna.input.InputDecoder.bytePatterns:Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
aload 1
monitorexit
2: areturn
3: StackMap locals: com.googlecode.lanterna.input.InputDecoder java.util.List
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/googlecode/lanterna/input/InputDecoder;
Exception table:
from to target type
1 2 3 any
3 4 3 any
Signature: ()Ljava/util/Collection<Lcom/googlecode/lanterna/input/CharacterPattern;>;
public boolean removePattern(com.googlecode.lanterna.input.CharacterPattern);
descriptor: (Lcom/googlecode/lanterna/input/CharacterPattern;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.bytePatterns:Ljava/util/List;
dup
astore 2
monitorenter
1: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.bytePatterns:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
aload 2
monitorexit
2: ireturn
3: StackMap locals: com.googlecode.lanterna.input.InputDecoder com.googlecode.lanterna.input.CharacterPattern java.util.List
StackMap stack: java.lang.Throwable
aload 2
monitorexit
4: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/googlecode/lanterna/input/InputDecoder;
0 5 1 pattern Lcom/googlecode/lanterna/input/CharacterPattern;
Exception table:
from to target type
1 2 3 any
3 4 3 any
MethodParameters:
Name Flags
pattern
public void setTimeoutUnits(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
ifge 1
iconst_0
goto 3
1: StackMap locals:
StackMap stack: com.googlecode.lanterna.input.InputDecoder
iload 1
sipush 240
if_icmple 2
sipush 240
goto 3
2: StackMap locals:
StackMap stack: com.googlecode.lanterna.input.InputDecoder
iload 1
3: StackMap locals: com.googlecode.lanterna.input.InputDecoder int
StackMap stack: com.googlecode.lanterna.input.InputDecoder int
putfield com.googlecode.lanterna.input.InputDecoder.timeoutUnits:I
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/googlecode/lanterna/input/InputDecoder;
0 5 1 units I
MethodParameters:
Name Flags
units
public int getTimeoutUnits();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.timeoutUnits:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/googlecode/lanterna/input/InputDecoder;
public synchronized com.googlecode.lanterna.input.KeyStroke getNextCharacter(boolean);
descriptor: (Z)Lcom/googlecode/lanterna/input/KeyStroke;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: StackMap locals: com.googlecode.lanterna.input.KeyStroke int int
StackMap stack:
iload 4
aload 0
getfield com.googlecode.lanterna.input.InputDecoder.currentMatching:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmpge 6
4: iinc 4 1
5: goto 25
6: StackMap locals:
StackMap stack:
aload 2
ifnull 13
7: aload 0
invokevirtual com.googlecode.lanterna.input.InputDecoder.getTimeoutUnits:()I
istore 5
start local 5 8: goto 12
9: StackMap locals: int
StackMap stack:
iinc 5 -1
ldc 250
invokestatic java.lang.Thread.sleep:(J)V
10: goto 12
StackMap locals:
StackMap stack: java.lang.InterruptedException
11: pop
iconst_0
istore 5
12: StackMap locals:
StackMap stack:
iload 5
ifle 13
aload 0
getfield com.googlecode.lanterna.input.InputDecoder.source:Ljava/io/Reader;
invokevirtual java.io.Reader.ready:()Z
ifeq 9
end local 5 13: StackMap locals:
StackMap stack:
aload 0
getfield com.googlecode.lanterna.input.InputDecoder.source:Ljava/io/Reader;
invokevirtual java.io.Reader.ready:()Z
ifne 14
iload 1
ifeq 22
aload 2
ifnonnull 22
14: StackMap locals:
StackMap stack:
aload 0
getfield com.googlecode.lanterna.input.InputDecoder.source:Ljava/io/Reader;
invokevirtual java.io.Reader.read:()I
istore 5
start local 5 15: iload 5
iconst_m1
if_icmpne 19
16: aload 0
iconst_1
putfield com.googlecode.lanterna.input.InputDecoder.seenEOF:Z
17: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.currentMatching:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 39
18: new com.googlecode.lanterna.input.KeyStroke
dup
getstatic com.googlecode.lanterna.input.KeyType.EOF:Lcom/googlecode/lanterna/input/KeyType;
invokespecial com.googlecode.lanterna.input.KeyStroke.<init>:(Lcom/googlecode/lanterna/input/KeyType;)V
areturn
19: StackMap locals: int
StackMap stack:
aload 0
getfield com.googlecode.lanterna.input.InputDecoder.currentMatching:Ljava/util/List;
iload 5
i2c
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
20: iinc 4 1
end local 5 21: goto 25
22: StackMap locals:
StackMap stack:
aload 2
ifnull 24
23: goto 39
24: StackMap locals:
StackMap stack:
aconst_null
areturn
25: StackMap locals:
StackMap stack:
aload 0
getfield com.googlecode.lanterna.input.InputDecoder.currentMatching:Ljava/util/List;
iconst_0
iload 4
invokeinterface java.util.List.subList:(II)Ljava/util/List;
astore 5
start local 5 26: aload 0
aload 5
invokevirtual com.googlecode.lanterna.input.InputDecoder.getBestMatch:(Ljava/util/List;)Lcom/googlecode/lanterna/input/CharacterPattern$Matching;
astore 6
start local 6 27: aload 6
getfield com.googlecode.lanterna.input.CharacterPattern$Matching.fullMatch:Lcom/googlecode/lanterna/input/KeyStroke;
ifnull 32
28: aload 6
getfield com.googlecode.lanterna.input.CharacterPattern$Matching.fullMatch:Lcom/googlecode/lanterna/input/KeyStroke;
astore 2
29: iload 4
istore 3
30: aload 6
getfield com.googlecode.lanterna.input.CharacterPattern$Matching.partialMatch:Z
ifne 3
31: goto 39
32: StackMap locals: java.util.List com.googlecode.lanterna.input.CharacterPattern$Matching
StackMap stack:
aload 6
getfield com.googlecode.lanterna.input.CharacterPattern$Matching.partialMatch:Z
ifeq 34
33: goto 3
34: StackMap locals:
StackMap stack:
aload 2
ifnull 36
35: goto 39
36: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.List.clear:()V
37: iconst_0
istore 4
end local 6 end local 5 38: goto 3
39: StackMap locals:
StackMap stack:
aload 2
ifnonnull 44
40: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.seenEOF:Z
ifeq 43
41: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.currentMatching:Ljava/util/List;
invokeinterface java.util.List.clear:()V
42: new com.googlecode.lanterna.input.KeyStroke
dup
getstatic com.googlecode.lanterna.input.KeyType.EOF:Lcom/googlecode/lanterna/input/KeyType;
invokespecial com.googlecode.lanterna.input.KeyStroke.<init>:(Lcom/googlecode/lanterna/input/KeyType;)V
areturn
43: StackMap locals:
StackMap stack:
aconst_null
areturn
44: StackMap locals:
StackMap stack:
aload 0
getfield com.googlecode.lanterna.input.InputDecoder.currentMatching:Ljava/util/List;
iconst_0
iload 3
invokeinterface java.util.List.subList:(II)Ljava/util/List;
astore 5
start local 5 45: aload 5
invokeinterface java.util.List.clear:()V
46: aload 2
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lcom/googlecode/lanterna/input/InputDecoder;
0 47 1 blockingIO Z
1 47 2 bestMatch Lcom/googlecode/lanterna/input/KeyStroke;
2 47 3 bestLen I
3 47 4 curLen I
8 13 5 timeout I
15 21 5 readChar I
26 38 5 curSub Ljava/util/List<Ljava/lang/Character;>;
27 38 6 matching Lcom/googlecode/lanterna/input/CharacterPattern$Matching;
45 47 5 bestSub Ljava/util/List<Ljava/lang/Character;>;
Exception table:
from to target type
9 10 11 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blockingIO
private com.googlecode.lanterna.input.CharacterPattern$Matching getBestMatch(java.util.List<java.lang.Character>);
descriptor: (Ljava/util/List;)Lcom/googlecode/lanterna/input/CharacterPattern$Matching;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.bytePatterns:Ljava/util/List;
dup
astore 4
monitorenter
3: aload 0
getfield com.googlecode.lanterna.input.InputDecoder.bytePatterns:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 9
StackMap locals: com.googlecode.lanterna.input.InputDecoder java.util.List int com.googlecode.lanterna.input.KeyStroke java.util.List top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.googlecode.lanterna.input.CharacterPattern
astore 5
start local 5 5: aload 5
aload 1
invokeinterface com.googlecode.lanterna.input.CharacterPattern.match:(Ljava/util/List;)Lcom/googlecode/lanterna/input/CharacterPattern$Matching;
astore 7
start local 7 6: aload 7
ifnull 9
7: aload 7
getfield com.googlecode.lanterna.input.CharacterPattern$Matching.partialMatch:Z
ifeq 8
iconst_1
istore 2
8: StackMap locals: com.googlecode.lanterna.input.InputDecoder java.util.List int com.googlecode.lanterna.input.KeyStroke java.util.List com.googlecode.lanterna.input.CharacterPattern java.util.Iterator com.googlecode.lanterna.input.CharacterPattern$Matching
StackMap stack:
aload 7
getfield com.googlecode.lanterna.input.CharacterPattern$Matching.fullMatch:Lcom/googlecode/lanterna/input/KeyStroke;
ifnull 9
aload 7
getfield com.googlecode.lanterna.input.CharacterPattern$Matching.fullMatch:Lcom/googlecode/lanterna/input/KeyStroke;
astore 3
end local 7 end local 5 9: StackMap locals: com.googlecode.lanterna.input.InputDecoder java.util.List int com.googlecode.lanterna.input.KeyStroke java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
10: aload 4
monitorexit
11: goto 14
StackMap locals: com.googlecode.lanterna.input.InputDecoder java.util.List int com.googlecode.lanterna.input.KeyStroke java.util.List
StackMap stack: java.lang.Throwable
12: aload 4
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
new com.googlecode.lanterna.input.CharacterPattern$Matching
dup
iload 2
aload 3
invokespecial com.googlecode.lanterna.input.CharacterPattern$Matching.<init>:(ZLcom/googlecode/lanterna/input/KeyStroke;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/googlecode/lanterna/input/InputDecoder;
0 15 1 characterSequence Ljava/util/List<Ljava/lang/Character;>;
1 15 2 partialMatch Z
2 15 3 bestMatch Lcom/googlecode/lanterna/input/KeyStroke;
5 9 5 pattern Lcom/googlecode/lanterna/input/CharacterPattern;
6 9 7 res Lcom/googlecode/lanterna/input/CharacterPattern$Matching;
Exception table:
from to target type
3 11 12 any
12 13 12 any
Signature: (Ljava/util/List<Ljava/lang/Character;>;)Lcom/googlecode/lanterna/input/CharacterPattern$Matching;
MethodParameters:
Name Flags
characterSequence
}
SourceFile: "InputDecoder.java"
InnerClasses:
public Matching = com.googlecode.lanterna.input.CharacterPattern$Matching of com.googlecode.lanterna.input.CharacterPattern