final class freemarker.core.StringLiteral extends freemarker.core.Expression implements freemarker.template.TemplateScalarModel
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: freemarker.core.StringLiteral
super_class: freemarker.core.Expression
{
private final java.lang.String value;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.List<java.lang.Object> dynamicValue;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljava/lang/Object;>;
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial freemarker.core.Expression.<init>:()V
1: aload 0
aload 1
putfield freemarker.core.StringLiteral.value:Ljava/lang/String;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/StringLiteral;
0 3 1 value Ljava/lang/String;
MethodParameters:
Name Flags
value
void parseValue(freemarker.core.FMParser, freemarker.core.OutputFormat);
descriptor: (Lfreemarker/core/FMParser;Lfreemarker/core/OutputFormat;)V
flags: (0x0000)
Code:
stack=6, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual freemarker.core.StringLiteral.getTemplate:()Lfreemarker/template/Template;
astore 3
start local 3 1: aload 3
invokevirtual freemarker.template.Template.getParserConfiguration:()Lfreemarker/core/ParserConfiguration;
astore 4
start local 4 2: aload 4
invokeinterface freemarker.core.ParserConfiguration.getInterpolationSyntax:()I
istore 5
start local 5 3: aload 0
getfield freemarker.core.StringLiteral.value:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_3
if_icmple 31
4: iload 5
bipush 20
if_icmpeq 6
5: iload 5
bipush 21
if_icmpne 8
6: StackMap locals: freemarker.template.Template freemarker.core.ParserConfiguration int
StackMap stack:
aload 0
getfield freemarker.core.StringLiteral.value:Ljava/lang/String;
ldc "${"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpne 9
7: iload 5
bipush 20
if_icmpne 8
aload 0
getfield freemarker.core.StringLiteral.value:Ljava/lang/String;
ldc "#{"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpne 9
8: StackMap locals:
StackMap stack:
iload 5
bipush 22
if_icmpne 31
aload 0
getfield freemarker.core.StringLiteral.value:Ljava/lang/String;
ldc "[="
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpeq 31
9: StackMap locals:
StackMap stack:
new freemarker.core.SimpleCharStream
dup
10: new java.io.StringReader
dup
aload 0
getfield freemarker.core.StringLiteral.value:Ljava/lang/String;
invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
11: aload 0
getfield freemarker.core.StringLiteral.beginLine:I
aload 0
getfield freemarker.core.StringLiteral.beginColumn:I
iconst_1
iadd
12: aload 0
getfield freemarker.core.StringLiteral.value:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
13: invokespecial freemarker.core.SimpleCharStream.<init>:(Ljava/io/Reader;III)V
astore 6
start local 6 14: aload 6
aload 4
invokeinterface freemarker.core.ParserConfiguration.getTabSize:()I
invokevirtual freemarker.core.SimpleCharStream.setTabSize:(I)V
15: new freemarker.core.FMParserTokenManager
dup
16: aload 6
17: invokespecial freemarker.core.FMParserTokenManager.<init>:(Lfreemarker/core/SimpleCharStream;)V
astore 7
start local 7 18: new freemarker.core.FMParser
dup
aload 3
iconst_0
aload 7
aload 4
invokespecial freemarker.core.FMParser.<init>:(Lfreemarker/template/Template;ZLfreemarker/core/FMParserTokenManager;Lfreemarker/core/ParserConfiguration;)V
astore 8
start local 8 19: aload 8
aload 1
aload 2
invokevirtual freemarker.core.FMParser.setupStringLiteralMode:(Lfreemarker/core/FMParser;Lfreemarker/core/OutputFormat;)V
20: aload 0
aload 8
invokevirtual freemarker.core.FMParser.StaticTextAndInterpolations:()Ljava/util/List;
putfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
21: goto 25
StackMap locals: freemarker.core.StringLiteral freemarker.core.FMParser freemarker.core.OutputFormat freemarker.template.Template freemarker.core.ParserConfiguration int freemarker.core.SimpleCharStream freemarker.core.FMParserTokenManager freemarker.core.FMParser
StackMap stack: java.lang.Throwable
22: astore 9
23: aload 8
aload 1
invokevirtual freemarker.core.FMParser.tearDownStringLiteralMode:(Lfreemarker/core/FMParser;)V
24: aload 9
athrow
25: StackMap locals:
StackMap stack:
aload 8
aload 1
invokevirtual freemarker.core.FMParser.tearDownStringLiteralMode:(Lfreemarker/core/FMParser;)V
end local 8 end local 7 end local 6 26: goto 30
StackMap locals: freemarker.core.StringLiteral freemarker.core.FMParser freemarker.core.OutputFormat freemarker.template.Template freemarker.core.ParserConfiguration int
StackMap stack: freemarker.core.ParseException
27: astore 6
start local 6 28: aload 6
aload 3
invokevirtual freemarker.template.Template.getSourceName:()Ljava/lang/String;
invokevirtual freemarker.core.ParseException.setTemplateName:(Ljava/lang/String;)V
29: aload 6
athrow
end local 6 30: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield freemarker.core.StringLiteral.constantValue:Lfreemarker/template/TemplateModel;
31: StackMap locals:
StackMap stack:
return
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 32 0 this Lfreemarker/core/StringLiteral;
0 32 1 parentParser Lfreemarker/core/FMParser;
0 32 2 outputFormat Lfreemarker/core/OutputFormat;
1 32 3 parentTemplate Lfreemarker/template/Template;
2 32 4 pcfg Lfreemarker/core/ParserConfiguration;
3 32 5 intSyn I
14 26 6 simpleCharacterStream Lfreemarker/core/SimpleCharStream;
18 26 7 tkMan Lfreemarker/core/FMParserTokenManager;
19 26 8 parser Lfreemarker/core/FMParser;
28 30 6 e Lfreemarker/core/ParseException;
Exception table:
from to target type
20 22 22 any
9 26 27 Class freemarker.core.ParseException
Exceptions:
throws freemarker.core.ParseException
MethodParameters:
Name Flags
parentParser
outputFormat
freemarker.template.TemplateModel _eval(freemarker.core.Environment);
descriptor: (Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
flags: (0x0000)
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
ifnonnull 2
1: new freemarker.template.SimpleScalar
dup
aload 0
getfield freemarker.core.StringLiteral.value:Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 3: aconst_null
astore 3
start local 3 4: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 32
StackMap locals: freemarker.core.StringLiteral freemarker.core.Environment java.lang.StringBuilder freemarker.core.TemplateMarkupOutputModel top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 4
start local 4 6: aload 4
instanceof java.lang.String
ifeq 7
aload 4
goto 8
7: StackMap locals: freemarker.core.StringLiteral freemarker.core.Environment java.lang.StringBuilder freemarker.core.TemplateMarkupOutputModel java.lang.Object java.util.Iterator
StackMap stack:
aload 4
checkcast freemarker.core.Interpolation
aload 1
invokevirtual freemarker.core.Interpolation.calculateInterpolatedStringOrMarkup:(Lfreemarker/core/Environment;)Ljava/lang/Object;
8: StackMap locals:
StackMap stack: java.lang.Object
astore 6
start local 6 9: aload 3
ifnull 16
10: aload 6
instanceof java.lang.String
ifeq 12
11: aload 3
invokeinterface freemarker.core.TemplateMarkupOutputModel.getOutputFormat:()Lfreemarker/core/MarkupOutputFormat;
aload 6
checkcast java.lang.String
invokevirtual freemarker.core.MarkupOutputFormat.fromPlainTextByEscaping:(Ljava/lang/String;)Lfreemarker/core/TemplateMarkupOutputModel;
goto 13
12: StackMap locals: java.lang.Object
StackMap stack:
aload 6
checkcast freemarker.core.TemplateMarkupOutputModel
13: StackMap locals:
StackMap stack: freemarker.core.TemplateMarkupOutputModel
astore 7
start local 7 14: aload 0
aload 3
aload 7
invokestatic freemarker.core.EvalUtil.concatMarkupOutputs:(Lfreemarker/core/TemplateObject;Lfreemarker/core/TemplateMarkupOutputModel;Lfreemarker/core/TemplateMarkupOutputModel;)Lfreemarker/core/TemplateMarkupOutputModel;
astore 3
end local 7 15: goto 32
16: StackMap locals:
StackMap stack:
aload 6
instanceof java.lang.String
ifeq 23
17: aload 6
checkcast java.lang.String
astore 7
start local 7 18: aload 2
ifnonnull 21
19: new java.lang.StringBuilder
dup
aload 7
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
20: goto 32
21: StackMap locals: java.lang.String
StackMap stack:
aload 2
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 7 22: goto 32
23: StackMap locals:
StackMap stack:
aload 6
checkcast freemarker.core.TemplateMarkupOutputModel
astore 7
start local 7 24: aload 2
ifnull 31
25: aload 7
invokeinterface freemarker.core.TemplateMarkupOutputModel.getOutputFormat:()Lfreemarker/core/MarkupOutputFormat;
26: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual freemarker.core.MarkupOutputFormat.fromPlainTextByEscaping:(Ljava/lang/String;)Lfreemarker/core/TemplateMarkupOutputModel;
27: astore 8
start local 8 28: aload 0
aload 8
aload 7
invokestatic freemarker.core.EvalUtil.concatMarkupOutputs:(Lfreemarker/core/TemplateObject;Lfreemarker/core/TemplateMarkupOutputModel;Lfreemarker/core/TemplateMarkupOutputModel;)Lfreemarker/core/TemplateMarkupOutputModel;
astore 3
29: aconst_null
astore 2
end local 8 30: goto 32
31: StackMap locals: freemarker.core.TemplateMarkupOutputModel
StackMap stack:
aload 7
astore 3
end local 7 end local 6 end local 4 32: StackMap locals: freemarker.core.StringLiteral freemarker.core.Environment java.lang.StringBuilder freemarker.core.TemplateMarkupOutputModel top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
33: aload 3
ifnull 34
aload 3
goto 36
34: StackMap locals: freemarker.core.StringLiteral freemarker.core.Environment java.lang.StringBuilder freemarker.core.TemplateMarkupOutputModel
StackMap stack:
aload 2
ifnull 35
new freemarker.template.SimpleScalar
dup
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
goto 36
35: StackMap locals:
StackMap stack:
getstatic freemarker.template.SimpleScalar.EMPTY_STRING:Lfreemarker/template/TemplateModel;
36: StackMap locals:
StackMap stack: freemarker.template.TemplateModel
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lfreemarker/core/StringLiteral;
0 37 1 env Lfreemarker/core/Environment;
3 37 2 plainTextResult Ljava/lang/StringBuilder;
4 37 3 markupResult Lfreemarker/core/TemplateMarkupOutputModel<*>;
6 32 4 part Ljava/lang/Object;
9 32 6 calcedPart Ljava/lang/Object;
14 15 7 partMO Lfreemarker/core/TemplateMarkupOutputModel<*>;
18 22 7 partStr Ljava/lang/String;
24 32 7 moPart Lfreemarker/core/TemplateMarkupOutputModel<*>;
28 30 8 leftHandMO Lfreemarker/core/TemplateMarkupOutputModel<*>;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
env
public java.lang.String getAsString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.StringLiteral.value:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/StringLiteral;
boolean isSingleInterpolationLiteral();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
ifnull 3
aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 3
1: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
instanceof freemarker.core.Interpolation
ifeq 3
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lfreemarker/core/StringLiteral;
public java.lang.String getCanonicalForm();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
ifnonnull 2
1: aload 0
getfield freemarker.core.StringLiteral.value:Ljava/lang/String;
invokestatic freemarker.template.utility.StringUtil.ftlQuote:(Ljava/lang/String;)Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 3: aload 1
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
4: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 10
StackMap locals: freemarker.core.StringLiteral java.lang.StringBuilder top java.util.Iterator
StackMap stack:
5: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 2
start local 2 6: aload 2
instanceof freemarker.core.Interpolation
ifeq 9
7: aload 1
aload 2
checkcast freemarker.core.Interpolation
invokevirtual freemarker.core.Interpolation.getCanonicalFormInStringLiteral:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: goto 10
9: StackMap locals: freemarker.core.StringLiteral java.lang.StringBuilder java.lang.Object java.util.Iterator
StackMap stack:
aload 1
aload 2
checkcast java.lang.String
bipush 34
invokestatic freemarker.template.utility.StringUtil.FTLStringLiteralEnc:(Ljava/lang/String;C)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 10: StackMap locals: freemarker.core.StringLiteral java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
11: aload 1
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
12: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lfreemarker/core/StringLiteral;
3 13 1 sb Ljava/lang/StringBuilder;
6 10 2 child Ljava/lang/Object;
java.lang.String getNodeTypeSymbol();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
ifnonnull 1
aload 0
invokevirtual freemarker.core.StringLiteral.getCanonicalForm:()Ljava/lang/String;
goto 2
StackMap locals:
StackMap stack:
1: ldc "dynamic \"...\""
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/StringLiteral;
boolean isLiteral();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
ifnonnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lfreemarker/core/StringLiteral;
protected freemarker.core.Expression deepCloneWithIdentifierReplaced_inner(java.lang.String, freemarker.core.Expression, freemarker.core.Expression$ReplacemenetState);
descriptor: (Ljava/lang/String;Lfreemarker/core/Expression;Lfreemarker/core/Expression$ReplacemenetState;)Lfreemarker/core/Expression;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new freemarker.core.StringLiteral
dup
aload 0
getfield freemarker.core.StringLiteral.value:Ljava/lang/String;
invokespecial freemarker.core.StringLiteral.<init>:(Ljava/lang/String;)V
astore 4
start local 4 1: aload 4
aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
putfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
2: 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 3 0 this Lfreemarker/core/StringLiteral;
0 3 1 replacedIdentifier Ljava/lang/String;
0 3 2 replacement Lfreemarker/core/Expression;
0 3 3 replacementState Lfreemarker/core/Expression$ReplacemenetState;
1 3 4 cloned Lfreemarker/core/StringLiteral;
MethodParameters:
Name Flags
replacedIdentifier
replacement
replacementState
int getParameterCount();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
ifnonnull 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
invokeinterface java.util.List.size:()I
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/StringLiteral;
java.lang.Object getParameterValue(int);
descriptor: (I)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual freemarker.core.StringLiteral.checkIndex:(I)V
1: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
iload 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lfreemarker/core/StringLiteral;
0 2 1 idx I
MethodParameters:
Name Flags
idx
private void checkIndex(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
ifnull 1
iload 1
aload 0
getfield freemarker.core.StringLiteral.dynamicValue:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/StringLiteral;
0 3 1 idx I
MethodParameters:
Name Flags
idx
freemarker.core.ParameterRole getParameterRole(int);
descriptor: (I)Lfreemarker/core/ParameterRole;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual freemarker.core.StringLiteral.checkIndex:(I)V
1: getstatic freemarker.core.ParameterRole.VALUE_PART:Lfreemarker/core/ParameterRole;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lfreemarker/core/StringLiteral;
0 2 1 idx I
MethodParameters:
Name Flags
idx
}
SourceFile: "StringLiteral.java"
InnerClasses:
ReplacemenetState = freemarker.core.Expression$ReplacemenetState of freemarker.core.Expression