public final class java.awt.font.LineBreakMeasurer
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: java.awt.font.LineBreakMeasurer
super_class: java.lang.Object
{
private java.text.BreakIterator breakIter;
descriptor: Ljava/text/BreakIterator;
flags: (0x0002) ACC_PRIVATE
private int start;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int pos;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int limit;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.awt.font.TextMeasurer measurer;
descriptor: Ljava/awt/font/TextMeasurer;
flags: (0x0002) ACC_PRIVATE
private java.awt.font.CharArrayIterator charIter;
descriptor: Ljava/awt/font/CharArrayIterator;
flags: (0x0002) ACC_PRIVATE
public void <init>(java.text.AttributedCharacterIterator, java.awt.font.FontRenderContext);
descriptor: (Ljava/text/AttributedCharacterIterator;Ljava/awt/font/FontRenderContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic java.text.BreakIterator.getLineInstance:()Ljava/text/BreakIterator;
aload 2
invokespecial java.awt.font.LineBreakMeasurer.<init>:(Ljava/text/AttributedCharacterIterator;Ljava/text/BreakIterator;Ljava/awt/font/FontRenderContext;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/awt/font/LineBreakMeasurer;
0 2 1 text Ljava/text/AttributedCharacterIterator;
0 2 2 frc Ljava/awt/font/FontRenderContext;
MethodParameters:
Name Flags
text
frc
public void <init>(java.text.AttributedCharacterIterator, java.text.BreakIterator, java.awt.font.FontRenderContext);
descriptor: (Ljava/text/AttributedCharacterIterator;Ljava/text/BreakIterator;Ljava/awt/font/FontRenderContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
aload 1
invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
isub
iconst_1
if_icmpge 3
2: new java.lang.IllegalArgumentException
dup
ldc "Text must contain at least one character."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.awt.font.LineBreakMeasurer java.text.AttributedCharacterIterator java.text.BreakIterator java.awt.font.FontRenderContext
StackMap stack:
aload 0
aload 2
putfield java.awt.font.LineBreakMeasurer.breakIter:Ljava/text/BreakIterator;
4: aload 0
new java.awt.font.TextMeasurer
dup
aload 1
aload 3
invokespecial java.awt.font.TextMeasurer.<init>:(Ljava/text/AttributedCharacterIterator;Ljava/awt/font/FontRenderContext;)V
putfield java.awt.font.LineBreakMeasurer.measurer:Ljava/awt/font/TextMeasurer;
5: aload 0
aload 1
invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
putfield java.awt.font.LineBreakMeasurer.limit:I
6: aload 0
aload 0
aload 1
invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
dup_x1
putfield java.awt.font.LineBreakMeasurer.start:I
putfield java.awt.font.LineBreakMeasurer.pos:I
7: aload 0
new java.awt.font.CharArrayIterator
dup
aload 0
getfield java.awt.font.LineBreakMeasurer.measurer:Ljava/awt/font/TextMeasurer;
invokevirtual java.awt.font.TextMeasurer.getChars:()[C
aload 0
getfield java.awt.font.LineBreakMeasurer.start:I
invokespecial java.awt.font.CharArrayIterator.<init>:([CI)V
putfield java.awt.font.LineBreakMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
8: aload 0
getfield java.awt.font.LineBreakMeasurer.breakIter:Ljava/text/BreakIterator;
aload 0
getfield java.awt.font.LineBreakMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
invokevirtual java.text.BreakIterator.setText:(Ljava/text/CharacterIterator;)V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/awt/font/LineBreakMeasurer;
0 10 1 text Ljava/text/AttributedCharacterIterator;
0 10 2 breakIter Ljava/text/BreakIterator;
0 10 3 frc Ljava/awt/font/FontRenderContext;
MethodParameters:
Name Flags
text
breakIter
frc
public int nextOffset(float);
descriptor: (F)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
fload 1
aload 0
getfield java.awt.font.LineBreakMeasurer.limit:I
iconst_0
invokevirtual java.awt.font.LineBreakMeasurer.nextOffset:(FIZ)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/LineBreakMeasurer;
0 1 1 wrappingWidth F
MethodParameters:
Name Flags
wrappingWidth
public int nextOffset(float, int, boolean);
descriptor: (FIZ)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
istore 4
start local 4 1: aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
aload 0
getfield java.awt.font.LineBreakMeasurer.limit:I
if_icmpge 23
2: iload 2
aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
if_icmpgt 4
3: new java.lang.IllegalArgumentException
dup
ldc "offsetLimit must be after current position"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: int
StackMap stack:
aload 0
getfield java.awt.font.LineBreakMeasurer.measurer:Ljava/awt/font/TextMeasurer;
aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
fload 1
invokevirtual java.awt.font.TextMeasurer.getLineBreakIndex:(IF)I
5: istore 5
start local 5 6: iload 5
aload 0
getfield java.awt.font.LineBreakMeasurer.limit:I
if_icmpne 9
7: aload 0
getfield java.awt.font.LineBreakMeasurer.limit:I
istore 4
8: goto 23
9: StackMap locals: int
StackMap stack:
aload 0
getfield java.awt.font.LineBreakMeasurer.measurer:Ljava/awt/font/TextMeasurer;
invokevirtual java.awt.font.TextMeasurer.getChars:()[C
iload 5
aload 0
getfield java.awt.font.LineBreakMeasurer.start:I
isub
caload
invokestatic java.lang.Character.isWhitespace:(C)Z
ifeq 12
10: aload 0
getfield java.awt.font.LineBreakMeasurer.breakIter:Ljava/text/BreakIterator;
iload 5
invokevirtual java.text.BreakIterator.following:(I)I
istore 4
11: goto 23
12: StackMap locals:
StackMap stack:
iload 5
iconst_1
iadd
istore 6
start local 6 13: iload 6
aload 0
getfield java.awt.font.LineBreakMeasurer.limit:I
if_icmpne 17
14: aload 0
getfield java.awt.font.LineBreakMeasurer.breakIter:Ljava/text/BreakIterator;
invokevirtual java.text.BreakIterator.last:()I
pop
15: aload 0
getfield java.awt.font.LineBreakMeasurer.breakIter:Ljava/text/BreakIterator;
invokevirtual java.text.BreakIterator.previous:()I
istore 4
16: goto 18
17: StackMap locals: int
StackMap stack:
aload 0
getfield java.awt.font.LineBreakMeasurer.breakIter:Ljava/text/BreakIterator;
iload 6
invokevirtual java.text.BreakIterator.preceding:(I)I
istore 4
18: StackMap locals:
StackMap stack:
iload 4
aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
if_icmpgt 23
19: iload 3
ifeq 22
20: aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
istore 4
21: goto 23
22: StackMap locals:
StackMap stack:
aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
iconst_1
iadd
iload 5
invokestatic java.lang.Math.max:(II)I
istore 4
end local 6 end local 5 23: StackMap locals:
StackMap stack:
iload 4
iload 2
if_icmple 25
24: iload 2
istore 4
25: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljava/awt/font/LineBreakMeasurer;
0 26 1 wrappingWidth F
0 26 2 offsetLimit I
0 26 3 requireNextWord Z
1 26 4 nextOffset I
6 23 5 charAtMaxAdvance I
13 23 6 testPos I
MethodParameters:
Name Flags
wrappingWidth
offsetLimit
requireNextWord
public java.awt.font.TextLayout nextLayout(float);
descriptor: (F)Ljava/awt/font/TextLayout;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
fload 1
aload 0
getfield java.awt.font.LineBreakMeasurer.limit:I
iconst_0
invokevirtual java.awt.font.LineBreakMeasurer.nextLayout:(FIZ)Ljava/awt/font/TextLayout;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/LineBreakMeasurer;
0 1 1 wrappingWidth F
MethodParameters:
Name Flags
wrappingWidth
public java.awt.font.TextLayout nextLayout(float, int, boolean);
descriptor: (FIZ)Ljava/awt/font/TextLayout;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
aload 0
getfield java.awt.font.LineBreakMeasurer.limit:I
if_icmpge 7
1: aload 0
fload 1
iload 2
iload 3
invokevirtual java.awt.font.LineBreakMeasurer.nextOffset:(FIZ)I
istore 4
start local 4 2: iload 4
aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
if_icmpne 4
3: aconst_null
areturn
4: StackMap locals: int
StackMap stack:
aload 0
getfield java.awt.font.LineBreakMeasurer.measurer:Ljava/awt/font/TextMeasurer;
aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
iload 4
invokevirtual java.awt.font.TextMeasurer.getLayout:(II)Ljava/awt/font/TextLayout;
astore 5
start local 5 5: aload 0
iload 4
putfield java.awt.font.LineBreakMeasurer.pos:I
6: aload 5
areturn
end local 5 end local 4 7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/awt/font/LineBreakMeasurer;
0 8 1 wrappingWidth F
0 8 2 offsetLimit I
0 8 3 requireNextWord Z
2 7 4 layoutLimit I
5 7 5 result Ljava/awt/font/TextLayout;
MethodParameters:
Name Flags
wrappingWidth
offsetLimit
requireNextWord
public int getPosition();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.awt.font.LineBreakMeasurer.pos:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/LineBreakMeasurer;
public void setPosition(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield java.awt.font.LineBreakMeasurer.start:I
if_icmplt 1
iload 1
aload 0
getfield java.awt.font.LineBreakMeasurer.limit:I
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "position is out of range"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield java.awt.font.LineBreakMeasurer.pos:I
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/font/LineBreakMeasurer;
0 4 1 newPosition I
MethodParameters:
Name Flags
newPosition
public void insertChar(java.text.AttributedCharacterIterator, int);
descriptor: (Ljava/text/AttributedCharacterIterator;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.awt.font.LineBreakMeasurer.measurer:Ljava/awt/font/TextMeasurer;
aload 1
iload 2
invokevirtual java.awt.font.TextMeasurer.insertChar:(Ljava/text/AttributedCharacterIterator;I)V
1: aload 0
aload 1
invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
putfield java.awt.font.LineBreakMeasurer.limit:I
2: aload 0
aload 0
aload 1
invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
dup_x1
putfield java.awt.font.LineBreakMeasurer.start:I
putfield java.awt.font.LineBreakMeasurer.pos:I
3: aload 0
getfield java.awt.font.LineBreakMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
aload 0
getfield java.awt.font.LineBreakMeasurer.measurer:Ljava/awt/font/TextMeasurer;
invokevirtual java.awt.font.TextMeasurer.getChars:()[C
aload 1
invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
invokevirtual java.awt.font.CharArrayIterator.reset:([CI)V
4: aload 0
getfield java.awt.font.LineBreakMeasurer.breakIter:Ljava/text/BreakIterator;
aload 0
getfield java.awt.font.LineBreakMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
invokevirtual java.text.BreakIterator.setText:(Ljava/text/CharacterIterator;)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/awt/font/LineBreakMeasurer;
0 6 1 newParagraph Ljava/text/AttributedCharacterIterator;
0 6 2 insertPos I
MethodParameters:
Name Flags
newParagraph
insertPos
public void deleteChar(java.text.AttributedCharacterIterator, int);
descriptor: (Ljava/text/AttributedCharacterIterator;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.awt.font.LineBreakMeasurer.measurer:Ljava/awt/font/TextMeasurer;
aload 1
iload 2
invokevirtual java.awt.font.TextMeasurer.deleteChar:(Ljava/text/AttributedCharacterIterator;I)V
1: aload 0
aload 1
invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
putfield java.awt.font.LineBreakMeasurer.limit:I
2: aload 0
aload 0
aload 1
invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
dup_x1
putfield java.awt.font.LineBreakMeasurer.start:I
putfield java.awt.font.LineBreakMeasurer.pos:I
3: aload 0
getfield java.awt.font.LineBreakMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
aload 0
getfield java.awt.font.LineBreakMeasurer.measurer:Ljava/awt/font/TextMeasurer;
invokevirtual java.awt.font.TextMeasurer.getChars:()[C
aload 0
getfield java.awt.font.LineBreakMeasurer.start:I
invokevirtual java.awt.font.CharArrayIterator.reset:([CI)V
4: aload 0
getfield java.awt.font.LineBreakMeasurer.breakIter:Ljava/text/BreakIterator;
aload 0
getfield java.awt.font.LineBreakMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
invokevirtual java.text.BreakIterator.setText:(Ljava/text/CharacterIterator;)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/awt/font/LineBreakMeasurer;
0 6 1 newParagraph Ljava/text/AttributedCharacterIterator;
0 6 2 deletePos I
MethodParameters:
Name Flags
newParagraph
deletePos
}
SourceFile: "LineBreakMeasurer.java"