class com.googlecode.lanterna.terminal.virtual.TextBuffer
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.googlecode.lanterna.terminal.virtual.TextBuffer
super_class: java.lang.Object
{
private static final com.googlecode.lanterna.TextCharacter DOUBLE_WIDTH_CHAR_PADDING;
descriptor: Lcom/googlecode/lanterna/TextCharacter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.LinkedList<java.util.List<com.googlecode.lanterna.TextCharacter>> lines;
descriptor: Ljava/util/LinkedList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/LinkedList<Ljava/util/List<Lcom/googlecode/lanterna/TextCharacter;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new com.googlecode.lanterna.TextCharacter
dup
bipush 32
invokespecial com.googlecode.lanterna.TextCharacter.<init>:(C)V
putstatic com.googlecode.lanterna.terminal.virtual.TextBuffer.DOUBLE_WIDTH_CHAR_PADDING:Lcom/googlecode/lanterna/TextCharacter;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
2: aload 0
invokevirtual com.googlecode.lanterna.terminal.virtual.TextBuffer.newLine:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/googlecode/lanterna/terminal/virtual/TextBuffer;
synchronized void newLine();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
new java.util.ArrayList
dup
sipush 200
invokespecial java.util.ArrayList.<init>:(I)V
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/googlecode/lanterna/terminal/virtual/TextBuffer;
synchronized void removeTopLines(int);
descriptor: (I)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
getfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
pop
3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
iload 1
if_icmplt 2
end local 2 5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/googlecode/lanterna/terminal/virtual/TextBuffer;
0 6 1 numberOfLinesToRemove I
1 5 2 i I
MethodParameters:
Name Flags
numberOfLinesToRemove
synchronized void clear();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.clear:()V
1: aload 0
invokevirtual com.googlecode.lanterna.terminal.virtual.TextBuffer.newLine:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/googlecode/lanterna/terminal/virtual/TextBuffer;
java.util.ListIterator<java.util.List<com.googlecode.lanterna.TextCharacter>> getLinesFrom(int);
descriptor: (I)Ljava/util/ListIterator;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
iload 1
invokevirtual java.util.LinkedList.listIterator:(I)Ljava/util/ListIterator;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/googlecode/lanterna/terminal/virtual/TextBuffer;
0 1 1 rowNumber I
Signature: (I)Ljava/util/ListIterator<Ljava/util/List<Lcom/googlecode/lanterna/TextCharacter;>;>;
MethodParameters:
Name Flags
rowNumber
synchronized int getLineCount();
descriptor: ()I
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/googlecode/lanterna/terminal/virtual/TextBuffer;
synchronized int setCharacter(int, int, com.googlecode.lanterna.TextCharacter);
descriptor: (IILcom/googlecode/lanterna/TextCharacter;)I
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
iflt 1
iload 2
ifge 4
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Illegal argument to TextBuffer.setCharacter(..), lineNumber = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", columnIndex = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 3
ifnonnull 8
5: getstatic com.googlecode.lanterna.TextCharacter.DEFAULT_CHARACTER:Lcom/googlecode/lanterna/TextCharacter;
astore 3
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.googlecode.lanterna.terminal.virtual.TextBuffer.newLine:()V
8: StackMap locals:
StackMap stack:
iload 1
aload 0
getfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.size:()I
if_icmpge 7
9: aload 0
getfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
iload 1
invokevirtual java.util.LinkedList.get:(I)Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 10: goto 12
11: StackMap locals: java.util.List
StackMap stack:
aload 4
getstatic com.googlecode.lanterna.TextCharacter.DEFAULT_CHARACTER:Lcom/googlecode/lanterna/TextCharacter;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
12: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.List.size:()I
iload 2
if_icmple 11
13: iconst_0
istore 5
start local 5 14: aload 4
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.googlecode.lanterna.TextCharacter
invokevirtual com.googlecode.lanterna.TextCharacter.isDoubleWidth:()Z
ifeq 18
15: aload 4
iload 2
iconst_1
iadd
aload 4
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.googlecode.lanterna.TextCharacter
bipush 32
invokevirtual com.googlecode.lanterna.TextCharacter.withCharacter:(C)Lcom/googlecode/lanterna/TextCharacter;
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
16: iconst_1
istore 5
17: goto 21
18: StackMap locals: int
StackMap stack:
aload 4
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
getstatic com.googlecode.lanterna.terminal.virtual.TextBuffer.DOUBLE_WIDTH_CHAR_PADDING:Lcom/googlecode/lanterna/TextCharacter;
if_acmpne 21
19: aload 4
iload 2
iconst_1
isub
getstatic com.googlecode.lanterna.TextCharacter.DEFAULT_CHARACTER:Lcom/googlecode/lanterna/TextCharacter;
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
20: iconst_2
istore 5
21: StackMap locals:
StackMap stack:
aload 4
iload 2
aload 3
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
22: aload 3
invokevirtual com.googlecode.lanterna.TextCharacter.isDoubleWidth:()Z
ifeq 24
23: aload 0
iload 1
iload 2
iconst_1
iadd
getstatic com.googlecode.lanterna.terminal.virtual.TextBuffer.DOUBLE_WIDTH_CHAR_PADDING:Lcom/googlecode/lanterna/TextCharacter;
invokevirtual com.googlecode.lanterna.terminal.virtual.TextBuffer.setCharacter:(IILcom/googlecode/lanterna/TextCharacter;)I
pop
24: StackMap locals:
StackMap stack:
iload 5
ireturn
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 25 0 this Lcom/googlecode/lanterna/terminal/virtual/TextBuffer;
0 25 1 lineNumber I
0 25 2 columnIndex I
0 25 3 textCharacter Lcom/googlecode/lanterna/TextCharacter;
10 25 4 line Ljava/util/List<Lcom/googlecode/lanterna/TextCharacter;>;
14 25 5 returnStyle I
MethodParameters:
Name Flags
lineNumber
columnIndex
textCharacter
synchronized com.googlecode.lanterna.TextCharacter getCharacter(int, int);
descriptor: (II)Lcom/googlecode/lanterna/TextCharacter;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
iflt 1
iload 2
ifge 4
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Illegal argument to TextBuffer.getCharacter(..), lineNumber = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", columnIndex = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iload 1
aload 0
getfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.size:()I
if_icmplt 6
5: getstatic com.googlecode.lanterna.TextCharacter.DEFAULT_CHARACTER:Lcom/googlecode/lanterna/TextCharacter;
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
iload 1
invokevirtual java.util.LinkedList.get:(I)Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 7: aload 3
invokeinterface java.util.List.size:()I
iload 2
if_icmpgt 9
8: getstatic com.googlecode.lanterna.TextCharacter.DEFAULT_CHARACTER:Lcom/googlecode/lanterna/TextCharacter;
areturn
9: StackMap locals: java.util.List
StackMap stack:
aload 3
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.googlecode.lanterna.TextCharacter
astore 4
start local 4 10: aload 4
getstatic com.googlecode.lanterna.terminal.virtual.TextBuffer.DOUBLE_WIDTH_CHAR_PADDING:Lcom/googlecode/lanterna/TextCharacter;
if_acmpne 12
11: aload 3
iload 2
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.googlecode.lanterna.TextCharacter
areturn
12: StackMap locals: com.googlecode.lanterna.TextCharacter
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/googlecode/lanterna/terminal/virtual/TextBuffer;
0 13 1 lineNumber I
0 13 2 columnIndex I
7 13 3 line Ljava/util/List<Lcom/googlecode/lanterna/TextCharacter;>;
10 13 4 textCharacter Lcom/googlecode/lanterna/TextCharacter;
MethodParameters:
Name Flags
lineNumber
columnIndex
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 0
getfield com.googlecode.lanterna.terminal.virtual.TextBuffer.lines:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 3
goto 10
StackMap locals: com.googlecode.lanterna.terminal.virtual.TextBuffer java.lang.StringBuilder top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 2
start local 2 3: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 4
start local 4 4: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 7
StackMap locals: com.googlecode.lanterna.terminal.virtual.TextBuffer java.lang.StringBuilder java.util.List java.util.Iterator java.lang.StringBuilder top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.googlecode.lanterna.TextCharacter
astore 5
start local 5 6: aload 4
aload 5
invokevirtual com.googlecode.lanterna.TextCharacter.getCharacterString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 5 7: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aload 1
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "\\s+$"
ldc ""
invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 1
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 4 end local 2 10: StackMap locals: com.googlecode.lanterna.terminal.virtual.TextBuffer java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
11: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/googlecode/lanterna/terminal/virtual/TextBuffer;
1 12 1 bo Ljava/lang/StringBuilder;
3 10 2 line Ljava/util/List<Lcom/googlecode/lanterna/TextCharacter;>;
4 10 4 b Ljava/lang/StringBuilder;
6 7 5 c Lcom/googlecode/lanterna/TextCharacter;
}
SourceFile: "TextBuffer.java"